2012-08-08 61 views
-2

我有一个即将到来的决赛的快速问题。私有成员数据和函数是否只能由构造函数访问?访问私人会员数据和功能

回答和阐述赞赏。

下面是促使我来到你们的问题和答案:

编辑:

5)能够确定何时声明是无效的尝试访问私有成员变量或功能。 - 这是一个赠送,私人函数和变量只能在构造函数中访问。

所以这是错误的?

+1

不,一个类的私人成员可以被该类的任何其他成员访问。你是否想要初始化'const'成员? – 2012-08-08 19:42:38

回答

2

是的,这显然是错误的。

从标准(ISO/IEC 14882:2003(E),§11.0/ 1):

一个类的一个成员可以是
        - 私人;也就是说,它的名字只能由宣称的类的成员和朋友使用。

它说成员,不构造

0

您可以从班级内的任何位置访问私人成员,但不能从其他班级或其他子类访问。

+0

除非另一个类被声明为“朋友” – 2012-08-08 19:43:16

+0

啊,是的,我认为我们在谈论Java,但它是C++。 – 2012-08-08 20:04:05

0

不,它们可以从物体内的任何地方访问,它只是无法从外部访问。

0

您可以在对象本身内部到达它们,而不仅仅是构造函数。

而且,如果您想知道如何做到这一点,还应该获取并设置从对象外部获取或设置它的方法。

1

类的私有成员将可以被任何类的方法访问。需要考虑的一点是静态成员函数,它没有this指针,只能访问静态成员变量。 Friend函数和Friend类也可以访问类私有成员变量。