模板類的 友元模板函數(shù) - ︶ㄣ第二名 - 博客園
模板類的 友元模板函數(shù)
?
123456789101112131415161718192021222324252627282930313233343536#include<iostream>#include<string>usingnamespacestd;?template<classT>classTest;template<classT> ostream& operator<<(ostream& out,constTest<T> &obj);template<classT>classTest{private:????intnum;public:????Test(intn=0)????{????????num = n;????}????Test(constTest <T> ©)????{????????num = copy.num;????}????//'<<'后面加上'<>'表明這個(gè)函數(shù)是個(gè)函數(shù)模板????friendostream& operator<< <>(ostream& out,constTest<T> &obj);};?template<classT> ostream& operator<<(ostream& out,constTest<T> &obj){????cout << obj.num << endl;????returnout;}??intmain(){????Test<int> t(2);????cout << t << endl;????getchar();????return0;}?
1)需要注意的是,template<class T>究竟哪里應(yīng)該出現(xiàn),哪里不應(yīng)該出現(xiàn)。
2)需要重點(diǎn)注意的是添加注釋的行,
1: friend ostream & operator << <>( ostream & out , const Test < T > & obj );此行不可也寫成,
1: friend template < class T > ostream & operator << <>( ostream & out , const Test < T > & obj );寫成這樣也不可,
1: friend template < class T > ostream & operator <<( ostream & out , const Test < T > & obj );總之,唯一正確的寫法就是代碼段中的寫法。<>也必不可少,其實(shí)<>有兩重意思,一是,表明此友元函數(shù)是函數(shù)模板;二是,此模板使用的模板類型參數(shù)為當(dāng)前模板類的類型參數(shù)class T。
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061
微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元

