1、發散性的問題:
c++中有幾種交換變數的方法?
答:兩種,定義巨集**塊 vs 定義函式
#define swap(t,a,b) \
void swap(int& a, int& b)
定義巨集**塊 和 定義函式都能交換變數。但是對於巨集**塊,是由預處理器處理,編譯器不知道巨集**塊的存在。定義函式的話一次只能實現一種型別的交換,重複造輪子並不是一件很好的事。
2、交換變數的方法c++中有沒有解決方案集合兩種方法的優點?
3、泛型程式設計
泛型寫法:
template void swap(t& a, t& b)
這裡面的 t 不是乙個具體的型別,泛指任意的資料型別
4、函式模板
templatevoid swap(t& a, t& b)
int a = 0;
int b = 1;
swap(a, b); //自動推導
float c = 2;
float d = 3;
swap (c, d); //顯示呼叫
小結:
第56課 函式模板的概念和意義
1.1 巨集 塊 vs 函式 變數的交換 include include using namespace std 巨集定義 塊 define swap t,a,b do while 0 這裡不加這個分號 可能是保證乙個整體,保證當做一條語句處理。for swap 考慮一下這種情況 定義函式方式 vo...
函式模板的概念和意義
發散性問題 c 中有幾種交換變數的方法?定義巨集 塊 vs 定義函式 程式設計實驗 include include using namespace std define swap t,a,b do while 0 int main 利用定義巨集 塊的方法看上去很完美,但是巨集是預處理器處理的程式單元...
C 深度解析 45 函式模板的概念和意義
1.發散性問題 2.程式設計實驗 include include using namespace std 巨集定義 塊 define swap t,a,b do while 0 這裡不加這個分號 可能是保證乙個整體,保證當做一條語句處理。定義函式方式 void swap int a,int b 引用...