一、模板簡介
在c++中,模板讓程式設計師能夠定義一種適用於不同型別的物件行為。這聽起來有點像巨集,但巨集不是型別安全的,而模板是型別安全的。
二、模板宣告語法
關鍵字template標誌著模板類宣告的開始,接下來是模板引數列表。該引數列表包含關鍵字typename,它定義了模板引數objecttype, objecttype是乙個佔位符,針對物件例項化模板時,將使用物件型別來替換它。
1、模板函式
如下是乙個max模板函式:
template
const objecttype &getmax(const objecttype &value1, const objecttype &value2)
//呼叫模板的方法如下:
int integer1 = 25;
int integer2 = 30;
//注意這裡呼叫getmax時使用了,這是將引數模板的objecttype指定為int;
int maxvalue = getmax(integer1, integer2);
//然而實際上編譯器很聰明,模板函式會自動推斷其型別,所以下面的宣告也是ok的.
int maxvalue = getmax(integer1, integer2);
2、模板類
類是一種程式設計單元,封裝的類的屬性以及使用這些屬性的方法。屬性通常是私有成員,類是設計藍圖,其實際表示為物件。模板類是模板化的c++類,是藍圖的藍圖。使用模板類時,可指定要為哪種型別具體化類。
下面是乙個簡單的模板類,只有乙個模板引數t:
template
//只有乙個模板引數
class myfirsttemplateclass
const t &getvalue() const
private:
t value;
};#include
using
namespace
std;
int main()
宣告多個引數:
template
class holdpair
const t1& getfirstvalue() const
;const t2& getsecondvalue() const
;};
C 類模板的總結
模板類是乙個很有用的工具,平常使用比較多的像std vector,std map,std queue都是模板類,可以說很方便.但是背後的實現可以說是很複雜,包括記憶體分配,包括快速訪問.我們之所以能這麼方便的使用,全是站在了巨人的肩膀上.模板定義的c 實體如下 本文主要介紹類模板和函式模板,首先我們...
c 類模板(模板類)
人們需要編寫多個形式和功能都相似的函式,因此有了函式模板來減少重複勞動 人們也需要編寫多個形式和功能都相似的類,於是 c 引人了類模板的概念,編譯器從類模板可以自動生成多個類,避免了程式設計師的重複勞動。有了類模板的機制,只需要寫乙個可變長的陣列類模板,編譯器就會由該類模板自動生成整型 double...
C 入門基礎 十 模板 類模板 模板函式總結
emsp有句話是這麼說的 世界是由懶人創造的,在我們的計算機世界中同樣如此。我們之前說到,為了將同乙個功能的實現簡單化,我們學習了過載的相關知識,但是過載也有乙個缺陷,就是需要將不同型別的變數所對應的函式一 一寫出,就比如我們想要實現兩個數的交換,那麼問題來了,這個數有int double char...