C++中友元函数的问题
最近看《C++ Primer Plus》P349有重载operator<<,并且是利用friend友元函数来访问私有成员,按照其范例测试:
class Student
{
private:
int age;
char address[10];
float score;
public:
friend ostream& operator<<(ostream &os,const Student &s);
friend void show(const Student &s);
};
ostream& operator<<(ostream &os,const Student &s) //这个函数会有错误
{
os<<s.age<<","<<s.address<<","<<s.score<<endl;
return os;
}
void show(const Student &s) //这个函数没有错误
{
cout<<s.age<<","<<s.address<<","<<s.score<<endl;
}
调试运行发现,ostream& operator<<(ostream &os,const Student &s) 函数有错,说不能访问私有成员age,address和score。但是show函数却没有错。
[解决办法]
珍惜生命,远离VC6
[解决办法]
珍惜生命,远离VC6
[解决办法]
这在VC6里还真通不过.................