【代码备忘】今天突然写的一个比较奇葩的C++ 代码,模版,friend,友元...


欢迎加入我们的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;
}


欢迎加入我们的QQ群,无论你是否工作,学生,只要有c / vc / c++ 编程经验,就来吧! 158427611 



你可能感兴趣的:(编程,C++,iostream,typedef,库)