码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2014-04-29 13:26:21      阅读:336      评论:0      收藏:0      [点我收藏+]

标签:   iostream   编程   c++   typedef   


欢迎加入我们的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++ 代码,模版,friend,友元...

标签:   iostream   编程   c++   typedef   

原文地址:http://blog.csdn.net/moooxin/article/details/24698461

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!