C 函式模板

2021-09-12 23:17:46 字數 1156 閱讀 5968

函式模板代表了乙個函式家族,該函式模板與型別無關,在使用時被引數化,根據實參型別產生函式的特定 型別版本。

格式: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 所謂函式模板,實際上是建立乙個通用函式,其函式型別和形參型別不具體指定,用乙個虛擬的型別來代表。這個通用函式就稱為函式模板。凡是函式體相同的函式都可以用這個模板來代替,不必定義多個函式,只需在模板中定義一次即可。在呼叫函式時系統會根據實參的型別...