您好,登錄后才能下訂單哦!
這期內(nèi)容當(dāng)中小編將會給大家?guī)碛嘘P(guān)C++中有哪些模板類,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
模板是泛型編程的基礎(chǔ),那什么是泛型編程呢?泛型編程是一種獨(dú)立于任何特定數(shù)據(jù)類型編寫代碼的方式。
C++標(biāo)準(zhǔn)模板庫中的數(shù)據(jù)容器、迭代器和算法,都是泛型編程的例子,它們都使用了模板的概念。比如動(dòng)態(tài)數(shù)組vector是可以存放任何類型數(shù)據(jù)的容器,我們可以定義許多不同類型的vector,比如 vector <int> 或 vector <string>。我們還可以定義保存鍵值對數(shù)據(jù)的map<int,float>或map<string,int>。
在定義一個(gè)類時(shí)先不指定類中數(shù)據(jù)成員的具體類型,而是用一個(gè)通用類型 T 來暫時(shí)替代,等到實(shí)例化類的對象時(shí)才確定類的成員數(shù)據(jù)的類型,這就叫模板類。
有了模板類,編譯器會在編譯階段從類模板自動(dòng)生成多個(gè)具體類型的類定義。類模板避免了程序員重復(fù)編程,但是并不等于程序中沒有具體類型類的代碼。只要程序中有一個(gè)模板類的實(shí)例對象,就會存在對應(yīng)的具體類的代碼。
22.2 定義模板類
模板類聲明的形式如下所示:
template <class T> class class_name {
...
}
T是一個(gè)占位符,類被實(shí)例化的時(shí)候T可以替換成某個(gè)具體的數(shù)據(jù)類型。比如下面這個(gè)例子中學(xué)生成績的數(shù)據(jù)類型有時(shí)候是用整型表示,有時(shí)候是用浮點(diǎn)型表示,那就可以把它定義為泛型T。
<>中的泛型數(shù)據(jù)類型也可以是多個(gè),比如<class T1, class T2>。
22.4 模板類的派生
可以從模板類派生出新的模板類,格式如下圖所示:
上述就是小編為大家分享的C++中有哪些模板類了,如果剛好有類似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識,歡迎關(guān)注億速云行業(yè)資訊頻道。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。