首先,必須清楚的是private和public限定的是類而不是物件。因此,在成員函式中訪問同類物件的私有成員是完全可以的。
所以,某些教材上所說的「私有資料成員不能用物件去訪問」是欠妥當的。
比如,如下類的宣告誰說不可以呢?
classcomplex
;void
complex::add(complex c)
其實這可以從成員函式的完整形式去考慮。依然以上例中的類為例:
void complex::add(complex c,complex* this)按照c++中對成員函式儲存方式,即該類物件共用一組成員函式指令集,那麼這些成員函式對各個物件的所有資料成員的訪問許可權應是一致的。
即能夠訪問this指標當前指向的物件的私有private成員,那麼也能同樣地訪問this指標當前沒有指向的物件的private成員。
以上。
類的私有資料成員的訪問
類的私有資料成員智慧型在類體哪被訪問,不能夠在類體外通過物件名直接訪問,考察下面的類 class point1 point1 point1 point1 point1 void point1 setpoint int x,int y,int z void point1 display 執行結果 12...
C 之友元函式不能訪問類的私有成員
無法解決的問題 類中宣告,類外定義的成員函式,導致無法訪問類中的私有成員函式 去掉using namespace std 改變 include 啥的都沒用 蒼了個天,走過路過的幫個忙?學c 嗎,令人頭禿的那種,呵呵 include using namespace std template class...
C 私有成員變數被物件直接訪問
c 訪問控制 關鍵字private,它描述了對類成員的訪問控制。使用類的物件方法可以直接訪問私有成員函式和變數。類的物件即例項只能通過公共成員函式來訪問私有變數和私有成員函式。因此公有成員函式成為物件的私有變數訪問的橋梁。在c 中,在類的成員函式的引數為此類型別時,可以通過類型別的物件直接訪問私有成...