C++友元函数问题,高手进

来源:百度知道 编辑:UC知道 时间:2024/05/10 07:29:59
在类中定义如下友元函数(在类内已经声明为友元函数了)
ostream & operator<<(ostream &s,const student &k)
{
s<<k.name;
s<<k.key;
return s;
}
编绎通不过,提示如下:
g:\file\mfile.cpp(45) : error C2248: 'name' : cannot access private member declared in class 'student'
高手指教一下原因。
我定义的是友元函数!!!!!!
这个程序是书上给出的,可在VC下就是编绎通不过,老师也找不出来是什么原因,可实践说明了一切啊。

如果申明了友员则不应该出现这样的问题,如:
class student
{
public:

friend ostream & operator<<(ostream &s,const student &k); //在public,或private没有关系!
private:
string name;
string key;
};
应该不会出现name是私有成员不能访问的错误!

无法访问。。student类的私有成员。。。name

更改一下。。。name修改一下属性。。就可以了