實際上是建立乙個通用函式,其函式型別和形參型別不具體制定,用乙個虛擬的型別來代表。這個通用函式就成為函式模
板 c++提供兩種模板機制:函式模板和類模板
類屬- 型別引數化,又稱引數模板
使得程式(演算法)可以從邏輯上抽象,把被處理的物件(資料)型別作為引數傳遞。
用模板是為了實現泛型,可以減輕程式設計的工作量,增強函式的重用性。
基本語法如下:
template//template也可以這麼寫,
void myswap(t &a, t&b)
/**
*filename: 1 template.cpp
*author: young fan
*date: 2018.4.19
*ide: visual studio 2017
*description: 函式模板的基本語法
*/#include
using
namespace
std;
#if 0
//int型別的資料交換
void myswap(int &a, int &b)
//double型別的資料交換
void myswap(double &a, double &b)
#endif
//每種格式都要寫一種,很麻煩,為此引出模板函式
//用模板是為了實現泛型,可以減輕程式設計的工作量,增強函式的重用性。
//模板技術,型別引數化,編寫**可以忽略型別
//為了讓編譯器區分是普通函式還是模板函式
//告訴編譯器我下面寫的是模板函式,不是奇怪的東西,不要報錯
template
//template也可以這麼寫,
void myswap(t &a, t&b)
void test1()
int main()
模板把函式或類要處理的資料型別引數化,表現為引數的多型性,成為類屬。
模板用於表達邏輯結構相同,但具體資料元素型別不同的資料物件的通用行為。
顯式地指定型別,可以按照下面的方式寫:
myswap(a,b);
函式模板基本語法
template class t intmyadd t a,t b intmyadd int a,char c void test02 函式模板允許過載 程式執行時編譯器先索引普通函式,之後才呼叫模板,如果要考慮模板函式優先,可以呼叫時加上語句 myadd a,b 編譯器 彙編器將 s彙編檔案鏈結生...
02函式模板基本語法
template 宣告建立模板 typename 表面其後面的符號資料型別 可以用class代替 t 通用資料型別 名稱可以替換 通常為大寫字母 include using namespace std template typename t typename換作class也可 void myswap...
C 語法小記 函式模板
函式模板 建議 將返回值型別作為第乙個模板引數 1 include 2 include 34 using namespace std 56 template7 void swap t l,t r 813 14 template15 t add t l,t r 1620 21int add int l...