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

时间:2014-04-29 13:26:21   收藏:0   阅读:336


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



评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!