我刚刚发现我可以用C ++编写,编译得很好(MinGW和VC ++):
class A
{
private:
void doSth();
A* foo;
A* bar;
};
void A::doSth()
{
foo->bar;
}
bar
的成员字段foo
是私有的。 为什么我可以访问它?我应该这样做吗?
答案 0 :(得分:2)
在C ++中,private
表示访问仅限于同一个类,而不是同一个对象实例。
答案 1 :(得分:1)
您还会注意到,在A的方法中,A私有变量的其他实例可能是访问权限。像
A::baz(A& other) {
other.bar; // legal
}
可见性是在班级,而不是实例级别。