首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

友元类如何使用?为什么会错

2012-03-19 
友元类怎么使用?为什么会错?#include iostreamusingnamespacestdclassAA{public:friendclassBBintnum

友元类怎么使用?为什么会错?
#include <iostream>
using   namespace   std;
class   AA
{
public:
friend   class   BB;
int   num;
};

class   BB
{
public:
static   void   show()
{
cout < <num;                   //   类   AA   中的成员
}
};

int   main()
{
AA   a={1};
BB::show();
return   0;
}

[解决办法]
假如你这样的语法合格的话,那么
int main()
{
AA a={1};
AA b={2};
BB::show(); // 你认为应该输出1,还是2?
return 0;
}
[解决办法]
cout < <num; // 类 AA 中的成员
你得有AA的具体的对象啊。
[解决办法]
cout < <num; // 类 AA 中的成员
AA对象在哪呀?
[解决办法]
class BB
{
public:
static void show()
{
AA aa;
cout < <aa.num; // 类 AA 中的成员
}
};

[解决办法]
类与对象不同
对象分配内存,程序使用
类定义,只是个类型描述
[解决办法]
#include <iostream>
using namespace std;

class AA
{
public:
friend class BB;
int num;
};

class BB
{
public:
static void show(AA & obj)
{
cout < < obj.num; // 类 AA 中的成员
}
};

int main()
{
AA a={1};
BB::show(a);
return 0;
}

热点排行