成员变量的方法是否可以访问同一类中的其他私有成员变量?我想到了一个函数成员变量。成员变量在其他成员变量的方法中的隐私
指向私有成员变量的指针是否可以在类的外部解除引用和分配?在另一个成员变量的方法中怎么样?
也许像
class A
{
someClass a,b;
A(){a(&b);}
}
成员变量的方法是否可以访问同一类中的其他私有成员变量?我想到了一个函数成员变量。成员变量在其他成员变量的方法中的隐私
指向私有成员变量的指针是否可以在类的外部解除引用和分配?在另一个成员变量的方法中怎么样?
也许像
class A
{
someClass a,b;
A(){a(&b);}
}
每当你调用成员变量的方法时,除非它的类型是被定义的类,否则你将无法访问私有成员变量。
如果您授予访问(某种程度上)指向成员变量的指针而不预先确定它是“const”,那么可以将其解除引用并分配给它。对于其他成员变量的方法,同样的断言仍然是正确的。在你的例子中,你正在调用一个方法(通过成员变量“a”),提供一个指向私有成员变量“b”的指针。你在A中访问这两个私有成员变量,这是完全正确的C++。
至少如果我正确地理解你的问题,答案是否定的。例如,这样的代码:
class outer {
class inner {
int x;
};
void use_x() { inner::x = 0; }
};
...不会编译。 inner
嵌套在outer
中的事实不是给予outer
的成员函数对inner
的私有部分的任何特殊访问。
编辑:编辑后,我看不出有什么异常的话 - A()
是(显然)的class A
成员还包括私有成员a
和b
。 private
的定义是它可以在类内部进行编码(即名称可见),但不能在类外进行编码。由于A()
在课堂内,因此它们都可以看到a
和b
。
这不是我的意思,虽然这是一个有趣的观点。看我的编辑。 – user383352 2010-08-16 22:22:48