2012-08-08 102 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類也可以訪問類私有成員變量。