之前的類模板成員函式都定義在類的內部,但是在實際開發中,往往需要將成員函式的實現放在類的外部,先看乙個基礎類:
1 #include2using
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 #include2using
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 模板實...