一、函式模板用法
1.1申明和定義
ø 在函式申明和定義前面,加乙個模板template
t, class
c>就行,其餘正常定義和申明
ø 呼叫時,跟正常函式一樣呼叫
注意:ø 模板在呼叫時,才確定引數的具體型別!!!
ø 模板的宣告或定義只能在全域性,命名空間或類範圍內進行。即不能在區域性範圍,函式內進行,比如不能在main函式中宣告或定義乙個模板
1.2呼叫示例
templatet add1(t, t, c);
int main()
templatet add1(t a, t b,c c)
二、類模板用法
2.1類模板的宣告和定義
2.1.1類模板的申明
ø 在類前面加乙個模板template
t, class
c>就行
2.1.2類模板的定義
ø 在類在類前面加乙個模板template
t, class
c>
ø 在定義類後加。比如類a的函式add,定義為void a::add(t a, t b)
2.1.3類模板呼叫
將在定義類後加改為
比如示例乙個物件a:
aa;
2.2具體示例
*.h申明
templateclassa//類模板宣告,類前面加template;
*.cpp定義
//類模板宣告,類前面加template。並且類a後面帶這個templateinta::add1(tt1, t t2)
成員函式呼叫
aa;//例項化乙個類,a後面帶這個aint aa =a.add1(2, 3);//呼叫模板成員函式,跟模板函式一樣呼叫就行
三、模板類預設值設定
3.1模板類的形參為型別形參
ø 類模板可以設定預設值,函式模板不能設定預設值
ø 設定預設值時,盡量放在最後,不要放在開頭
ø 如果放在開頭,後面一定要設定預設值,並且跟第乙個預設值一樣
例如:
templateclass ceildemo
3.2示例
templatedemo03.h
#ifndeftemplate_demo_03
#define template_demo_03
//定義帶預設型別形參的類模板。這裡把t2預設設定為int型
templateclass ceildemo;
//在類模板的外部定義類中的成員時template後的形參表應省略預設的形參型別
templateint ceildemo::ceil(t1a, t2 b)
#endif
templatedemo03.cpp
#include#include "templatedemo03.h"
void main(){
ceildemocd;
cout <
C 模板類定義與宣告
pragma once ifndef grid h define grid h template class grid int getwidth const static const int kdefaultwidth 10 static const int kdefaultheight 10 pr...
C 模板類定義與宣告
宣告和使用類模板 如果在類模板外定義成員函式,應寫成類模板形式 template 測試的模板類,如下 ifndef compare h define compare h template class compare endif include compare.h template compare c...
C 模板類的宣告 定義和使用
說明 1.將c 模板類的宣告和定義都放在乙個檔案,如.h或.cpp檔案中,使用的時候加入 include 模板類檔名.h 或.cpp 即可。2.將c 模板類的宣告和定義分別放在.h和.cpp檔案中且在.cpp檔案中包含 include h 不過在使用時,會因為不同的開發環境而有所不同 a.在整合開發...