欢迎加入我们的QQ群,无论你是否工作,学生,只要有c / vc / c++ 编程经验,就来吧!158427611
今天突然脑袋一闪,写出这样的代码。
这样就能 不用在Ta中添加friend class ,
只要实现Tb 就能访问Ta的private 属性了。
应该是比较奇葩的代码吧 。。。。。
#include <iostream> using namespace std; template<typename T> class Ta { public: Ta(){ m_ta = 1; } friend T; //这里要注意 没有class private: int m_ta; }; class Tb { public: void print(Ta<Tb> ta) { cout << ta.m_ta << endl; } }; class Tc { public: void print2(Ta<Tc> ta) { cout << ta.m_ta << endl; } }; int _tmain(int argc, _TCHAR* argv[]) { Ta<Tb> ta; Tb tb; tb.print(ta); Ta<Tc> tac; Tc tc; tc.print2(tac); return 0; }
【代码备忘】今天突然写的一个比较奇葩的C++ 代码,模版,friend,友元...
原文地址:http://blog.csdn.net/moooxin/article/details/24698461