56 函式模板的概念和意義

2021-09-27 02:25:33 字數 1655 閱讀 2685

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 引用...