G++聲明模板友元函數
從 Linux Wiki
提示:此文已超过 16 年(6166 天)未更新,如发现内容过时或有误,欢迎改进:)
本文主要討論利用類型參數,把模板函數聲明為對應模板類的友員函數的問題。
下面是一個例子,注意:
- 在使用friend前加入了對func的聲明
- 在聲明friend時,func後有<>
- 此段代碼不能在VC6中編譯通過。
#include<iostream> using namespace std; template < class T > void func (T arg); template < class T > class CTemp{ friend void func<> (T arg); private: T element; public: CTemp (T arg):element(arg){ } }; template < class T > void func (T arg){ CTemp < T > a (arg); int i; cout << a.element << endl; return; } int main(){ func (5); return 0; }
本文对您有帮助?分享给更多朋友!
反馈与讨论
发现文档不全面、有错误却没时间编辑文档?想分享自己的经验或见解?欢迎在此留言、讨论。