friend类型的使用问题
class A {
private:
int i;
public:
friend class B;
class B
{
public:
B(A &a)
{
a.i=0;//编译器编译到这里的时候,还没有看到后面的friend句
}
};
//friend class B;
};
int main()
{
return 0;
}
上述代码在 VS2005 下能通过编译,但是在VC6下不能通过,提示:
error C2248: 'i' : cannot access private member declared in class 'A'
但是换成红色的被注释,绿色的去掉注释之后,两个编译器下均能通过编译,这个为什么?