「模板」學習筆記(1) 引出模板

2022-07-18 07:42:11 字數 1036 閱讀 7828

********************c++中引出模板的原因********************

我們大家都知道,c++給我們提供了眾多的資料型別,比如說整型、浮點型、雙精度型、布林型等等。而且c++還為我們提供了一種函式過載的方式,即函式名相同,但是型別不同,那麼也可以被c++編譯器所認識到,進而可以輸出不同的結果。下面,我們以乙個程式為例來說明:

#include using namespace std;

int sum(int a,int b);//兩個整型變數相加

double sum(double a,double b);//兩個雙精度型變數相加

float sum(float a,float b);///兩個浮點型型變數相加

int sum(int a,int b)

double sum(double a,double b)

float sum(float a,float b)

int main()

int main()

{ int x=1,y=2;

cout<<"整型變數的值為:"《呵呵,直觀上這個程式就比剛剛那個簡潔,只有22行。下面我們來認真分析一下這個程式到底說了什麼。首先我們可以看到,在程式的第3行,我們就宣告了乙個模板型別elementtype。這就是模板的宣告格式,如下:

template

template是宣告模板的關鍵字,尖括號中的class表示後面跟著的引數為自定義的模板型別,上面我們定義的型別為type1和type2。應該特別注意的是,模板宣告之後不加;號!!!

之後在程式的5到8行我們用自定義的型別elementtype建立了乙個模板函式。函式模板說白了就是乙個模子,用這個模子我們就可以建立出許多功能相同、引數型別和返回值不同的函式,從而這樣就實現了**的重用~~~在這個函式中,我們並沒有為sum()函式提供具體的引數型別,只用elementtype來代替。這樣編譯器就會根據實際傳遞進來的型別和我們自定義的函式模板來建立sum()函式。由於這種工作分別在程式的第14行、17行和20行被執行了3次,所以說sum()函式被過載了3次,以適應不同的型別的資料。

模板學習筆記

1 模板語法 template這個關鍵字會告訴編譯器,隨後的類定義將操作乙個或更多未指明的型別。當由這個模板產生實際類 時,必須指定這些型別以使編譯器能夠替代他們。template class arrary t a size void display tmplate 這裡的t是乙個型別名稱,這個型別...

模板學習筆記

模板 templates 模板,顧名思義,就是預先做好的樣板,利用該樣板可以製造出樣式相近的產品,但是產品可能所用材料不同,卻具有相同的功能操作,比如,要想鑄造鋁鍋,首先要有個模子,其後就是材料的製取了。然而通過這個模子也可以造個金鍋出來。c 中的模板與上大同小異,都是基於世界上萬事萬物都具有相似性...

C 中的模板學習筆記1

想要學好c 的話,或是想要真正了解c 中的精髓和本質的話,c 中的stl,template 演算法都是必須要精通的。從今天來開始學習c 中的模板,參考和摘錄的書籍是 c template 中文版 和 boost 程式庫探秘 深度解析c 標準庫 作者很喜歡笑,新技能get.笑 1.基本概念 1.1 模...