只是想确保我正确理解了这个问题
class A
{
friend class B;
int valueOne;
int valueTwo;
public:
int GetValueOne(){ return valueOne; }
}
class B
{
public:
A friendlyData;
int GetValueTwo(){ return friendlyData.valueTwo; }
}
main()
{
B myObject;
myObject.friendlyData.GetValueOne(); // OK?
myObject.GetValueTwo(); // OK?
}
关于那段代码,如果我们忽略初始化的缺失,主函数中的两个函数是可以正常工作的,对吗?除了执行一些花哨的操作外,没有其他方法可以从这些类中获取数据... 对于这些类的外部,B.A
没有可访问的数据,只有成员函数。
B.A.GetValueOne()
是编译器错误。您是不是想写myObject.friendlyData.GetValueOne()
?下一行也是同样的情况。 - David Rodríguez - dribeas