c 的函式模板

2021-08-31 13:46:30 字數 1421 閱讀 1473

首先為什麼要引進函式模板?我們來看乙個案例:

我們在這兒想要實現乙個通用的交換資料的函式

void swap(int left, int right)

void swap(char left, char right)

void swap(double left, double right)

template返回值型別 函式名(引數列表){}
templatevoid swap( t& left, t& right)

有一點需要注意:typename是用來定義模板引數關鍵字,也可以使用class(切記:不能使用struct代替class)

templatet add(const t& left, const t& right)

int main()

int main(void)

// 專門處理int的加法函式

int add(int left, int right)

// 通用加法函式

templatet add(t left, t right)

void test()

// 專門處理int的加法函式

int add(int left, int right)

// 通用加法函式

templatet1 add(t1 left, t2 right)

void test()

templateclass 類模板名

;

#include#includeusing namespace std;

templateclass vector

// 使用析構函式演示:在類中宣告,在類外定義。

~vector();

void pushback(const t& data)

void popback()

size_t size()

t& operator(size_t pos)

private:

t* _pdata;

size_t _size;

size_t _capacity;

};template vector::~vector()

}int main()

cout << endl;

for (size_t i = 0; i < s2.size(); ++i)

cout << endl;

return 0;

}

c 函式模板

include using namespace std template t max t a,t b,t c int main int main int i1 185,i2 76,i3 567,i double d1 56.63,d2 90.23,d3 3214.78,d long g1 67854...

c 函式模板

關鍵字template總是放在模板的電腦關於與宣告的最前面,關鍵字後面是用逗號分隔的模板參數列,該列表是模板參數列,不能為空。模板引數可以是乙個模板型別引數,它代表了一種型別 也可以是乙個模板非型別引數,它代表了乙個常量表示式。模板型別引數由關鍵字class或typename後加乙個識別符號構成。在...

C 函式模板

c 提供了函式模板 function template 所謂函式模板,實際上是建立乙個通用函式,其函式型別和形參型別不具體指定,用乙個虛擬的型別來代表。這個通用函式就稱為函式模板。凡是函式體相同的函式都可以用這個模板來代替,不必定義多個函式,只需在模板中定義一次即可。在呼叫函式時系統會根據實參的型別...