函式模板代表了乙個函式家族,該函式模板與型別無關,在使用時被引數化,根據實參型別產生函式的特定 型別版本。
格式:template
template void swap(t& left,t& right)
注意:typename是用來定義模板引數關鍵字,也可以使用class(切記:不能使用struct代替class)
1、隱式例項化:讓編譯器根據實參推演模板引數的實際型別
template t add(t& i,t&j)
int main()
2、顯示例項化:顯示在函式名後的<>中指定模板引數的實際類例項化
int main()
templateclass 類模板名 ;
動態順序表:
typedef int datatype;
typedef char datatype;
templateclass vector
vector();
void pushback(t x)
const t& operator(size_t i)const
t& operator(size_t i)
size_t size()const
~vector()
}private:
t* _data;
size_t size;
size_t _capacity;
};template vector::~vector() }
注意:vector不是具體的類,是編譯器根據被例項化的型別生成具體類的模具
類模板例項化需要在類模板名字後跟<>,然後將例項化的型別放在<> 中即可,類模板名字不是真正的類,而例項化的結果才是真正的類。
template vectors1;
s1.pushback(1);
s1.pushback(2);
s1.pushback(3);
vectors2;
s2.pushback(1.0);
s2.pushback(2.0);
s2.pushback(3.0);
c 函式模板
include using namespace std template t max t a,t b,t c int main int main int i1 185,i2 76,i3 567,i double d1 56.63,d2 90.23,d3 3214.78,d long g1 67854...
c 函式模板
關鍵字template總是放在模板的電腦關於與宣告的最前面,關鍵字後面是用逗號分隔的模板參數列,該列表是模板參數列,不能為空。模板引數可以是乙個模板型別引數,它代表了一種型別 也可以是乙個模板非型別引數,它代表了乙個常量表示式。模板型別引數由關鍵字class或typename後加乙個識別符號構成。在...
C 函式模板
c 提供了函式模板 function template 所謂函式模板,實際上是建立乙個通用函式,其函式型別和形參型別不具體指定,用乙個虛擬的型別來代表。這個通用函式就稱為函式模板。凡是函式體相同的函式都可以用這個模板來代替,不必定義多個函式,只需在模板中定義一次即可。在呼叫函式時系統會根據實參的型別...