定義函式模板
如果想要編寫函式比較兩個值的大小,我們可能這樣寫:
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 是實現 重用機制的一種工具,它可以實現型別引數化,把型別定義為引數 模板元程式設計 從而實現了真正的 可重用性。模板是用來批量生成功能和形式都幾乎相同的 的。編譯器就能在需要的時候,根據模板自動生成程式的 從同乙個模板自動生成的 形式幾乎是一樣的。模板就像乙個做餅乾的模...