Console下友员问题
假设定义有这样一个类Nova , 在VC Console下为什么总是提示<<访问了私有成员?
我已经将其定义为友员了呀 !在 GNU ++ 下测试通过 。 此外 , 如果用 print函数却也能够正确运行 ?
class Nova {
friend ostream & operator << (ostream & os, Nova & no);
friend void print(Nova & no);
public:
Nova(int v1,int v2,string s):name(s){i=v1;j=v2;}
private:
int i,j;
string name;
};
ostream & operator << (ostream & os, Nova & no) {
os<<no.name<<' : '<<no.i<<'\t'<<no.j<<endl;
return os;
}
void print(Nova & no) {
cout<<no.name<<endl<<no.i<<endl<<no.j<<endl;
}
void main() {
Nova nova(1,2,"fengxin");
cout<<nova;
//print(nova);
}