模板
模板的概念:模板就是建立一個通用的模具,大大提高復用性
c++中模板機制分為兩類
函數模板
建立一個通用函數,其函數返回值類型和形參類型可以不具體定制,用一個虛擬的類型來代表
template<typename T>
//template 聲明創建模板
//typename 表明其后面的符號是一種數據類型,可以用class代替
//T 通用的數據類型,名稱可以替換,通常是大寫字母
// 定義一個模板,告訴編譯器后面這個函數中的T是通用數據類型
template<typename T>
void myswap(T a,T b) {}int main() {int a = 10, b = 20;// 使用模板的兩種方式//1. 自動類型推導myswap(a, b);//2. 顯示指定類型,指定告訴模板類型myswap<int>(a, b);//空模板的參數列表強制調用模板myswap<>(a, b);
}
普通函數與函數模板的調用規則
- 如果函數模板和普通模板都可以調用,優先調用普通模板
- 可以通過空模板參數列表,強制調用函數模板
- 函數模板可以發生參數重載
- 如果函數模板可以產生更好的匹配,優先調用函數模板