類模板的實現與定義相分離

2022-05-14 13:12:38 字數 947 閱讀 6790

之前的類模板成員函式都定義在類的內部,但是在實際開發中,往往需要將成員函式的實現放在類的外部,先看乙個基礎類:

1 #include2

using

namespace

std;34

class

complex

13void

printfcom()

1417

private:18

inta;

19int

b;20

};21 complex operator + (complex &c1, complex &c2)

2228 ostream& operator

<<(ostream &out, const complex&c)

2933

intmain()

34

然後把上面的**改成類模板:

1 #include2

using

namespace

std;

34 template5

class

complex

16complex()

1721

void

printfcom()

2225

private:26

t a;

27t b;

28};

29 template30 complexoperator + (complex&c1, complex&c2)

3137 template38 ostream& operator

<< (ostream &out, const complex&c)

3943

intmain()

44

這裡的學問有很多,友元函式的模板分離有很多要考慮的東西。可細讀c++ primer這一章節。

C 類模板的宣告與實現分離

第一次寫博文,本人才疏學淺,以現在的實力寫下這些東西,內容上可能會出現錯誤和不嚴謹之處,但是為了以後自己的回顧和總結,覺得自己應該在錯誤中前進,呵呵。如若讀者不幸搜尋到本人文章,請你們以懷疑的態度去閱讀。最近在實現鏈式佇列資料結構時,發現類模板的宣告與實現分離開 採用傳統的.h檔案和對應的.cpp檔...

類模板與類模板成員函式分離定義的注意事項

1 原始檔一定要有巨集包含 ifndef vector cpp define vector cpp 2 標頭檔案尾部一定要有巨集包含 include vector.cpp 3 在原始檔中定義類模板的建構函式和賦值操作符時,一定要注意,正確形式如下 cpp ifndef vector cpp defi...

C 模板應用 模板定義和實現分離

關於c 中類的模板,慣常的用法都是把實現和定義放在標頭檔案裡了事。這樣的問題是,加大了標頭檔案的長度,減低了模板 的可讀性,還有就是破壞了物件導向的隱藏實現的規則。下面就是這種問題的兩個解決方案的總結。假設模板 如下 模板定義 a.h include template class ttest 模板實...