C 淺說模板定義

2021-06-19 18:49:37 字數 785 閱讀 1058

定義函式模板

如果想要編寫函式比較兩個值的大小,我們可能這樣寫:

int compare(const string &v1,const string &v2)

int compare(const double &v1,const double &v2)

……通過過載不同的型別來實現一件事,這樣容易出錯,且事先必須知道究竟有哪些型別。這裡比較適合使用函式模板,如下所示:

template//這裡可使用typename來代替class關鍵字,t是模板型別形參,可將它命名為任意名字

int compare(const t &v1,const t &v2)

然後像類似這樣呼叫:

compare(1,0);

實質上,這裡編譯器會確定要用什麼型別代替型別形參t。

函式模板也可以與非模板函式一樣宣告為inline,說明符放在模板形參表之後、返回型別之前,不能放在關鍵字template之前,如:

templateinline t min(const t &,const t &);

定義類模板

就像定義函式模板一樣,也可以定義類模板,下面定義乙個佇列queue類模板:

template

class queue

;使用類模板時必須為模板形參顯式指定實參,如:

queueqi;  //用int代替type

queueqs; //用string代替type

這時,編譯器會用提供的實際特定型別代替type,重新編寫queue類。

C 淺說指標比較

對於一些普通的值比較,如下 int v1 4 int v2 4 int v3 5 則v1 v2 為true v1 v2 為false v1 v3 為false 上面v1 v2 v3都有各自的儲存位址和值,而 v1 v2 比較的是它們的值,這裡它們的值都等於4,所以條件為真 同樣v1 v3 比較的也是...

c 程式 淺說虛函式

由於兒子類是從父親類派生出去的,因此兒子類的物件也會繼承父親類的屬性和功能 資料和函式 比如說這個兒子叫小明,那麼他就是兒子類的乙個物件。小明繼承了父親類的一些屬性 矮個 和功能 擅長跳躍 由於他們的關係非常親密,因此我們可以用指標將他們聯絡起來。father pfather new son 由於在...

C 模板 template 的定義

定義 模板 template 是實現 重用機制的一種工具,它可以實現型別引數化,把型別定義為引數 模板元程式設計 從而實現了真正的 可重用性。模板是用來批量生成功能和形式都幾乎相同的 的。編譯器就能在需要的時候,根據模板自動生成程式的 從同乙個模板自動生成的 形式幾乎是一樣的。模板就像乙個做餅乾的模...