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

为什么定义了友元函数,在重载时还是访问不了类的私有成员

2012-08-13 
为何定义了友元函数,在重载时还是访问不了类的私有成员代码如下;#include iostream#include stringusi

为何定义了友元函数,在重载时还是访问不了类的私有成员
代码如下;
#include <iostream>
#include <string>
using namespace std;
class Person
{
public:
Person(){}
Person(string na, int nu)
{
name=na;
num=nu;
}
friend bool operator==(const Person&, const Person&);
private:
string name;
int num;
};
bool operator==(const Person& p1, const Person& p2)
{
return p1.name==p2.name&&p1.num==p2.num;
}
int main()
{
return 0;
}
这是重载==操作符的 ,还有重载输入输出操作符的时候也是碰到了同样的情况。。。。。。

[解决办法]
VC6.0对友元的支持不好,这是一个经典BUG
这里是解决办法
http://www.cnblogs.com/xinjun/archive/2010/07/19/1780902.html
当然最好的解决办法是抛弃VC6.0

热点排行
Bad Request.