#include<iostream>
class FooA
{
private :
friend class FooB;
void Hello();
void Hello2();
private:
void Hello3();
int m_iData;
};
class FooB
{
void fun()
{
FooA objA;
objA.Hello(); // right
objA.Hello2(); // right
objA.Hello3(); // right
//ojbA.m_iData = 0; // compile error
}
};
通常,如果我们访问对象专有的数据成员函数或成员变量,则会直接引发错误。
但是在这种情况下,它如何能够访问Hello(),Hello2(),Hello3()函数以及为什么它在访问m_iData时引发错误。
答案 0 :(得分:1)
objA
中的b和j已被交换以形成未知标识符ojbA
。
将ojbA.m_iData = 0;
更改为objA.m_iData = 0;