訪問基類的私有成員
㈠ 派生類能否直接訪問基類的私有成員若不能,應如何實現
不能
不過可以在基類裡面增加公有的setxx和getxx方法,在子類裡面通過這些getxx和setxx方法間接訪問基類的私有成員變數
㈡ 派生類能否直接訪問基類的私有成員若不能,應如何實現
不能訪問!也不可實現!也沒有實現的必要!你理解出了問題!類成員的既然定義為私有成員就是為了除本類外不能讓任何類訪問!你試圖修改這個規則只能說明你的理解出錯!轉牛角尖了!
如果是想讓子類能訪問 就將其由私有成員改為受保護的成員!讓也可在父類中定義一個函數返回該私有成員的值 不過沒有任何意義!!
㈢ 在派生類中能否直接訪問基類中的私有成員
不可以,派生類可以訪問protected和public成員,private成員只有該類自身及友元類可以訪問
㈣ 派生類可以調用基類的私有成員嗎
派生類不能對基類私有成員進行訪問。
㈤ 請問子類中繼承過來的公有函數,可以訪問基類的私有成員變數嗎
不可以。
可以先看下C++的繼承機制,在計運算元類對象所佔內存大小的時候,父類的私有成員變數大小也計算在內。所以,子類繼承父類時,內部包含父類的私有成員,只不過是已經固化且不可見的。繼承自父類的私有成員變數,子類不可見,不可另加操作,實例化後與父類對象私有成員所佔內存區地址不同。
當父類存在共有或保護函數對其私有成員變數操作時,子類也可使用繼承自父類的這些函數對其內部隱藏的同樣繼承自父類的私有成員變數進行操作。但子類無法再寫一個函數對這部分成員變數進行訪問或修改。
㈥ C++中,子類為什麼不能訪問基類的private數據
子類或者外部代碼可以「間接訪問」私有成員,但是這個「間接訪問」只能是類的編寫者決定,類的使用者無權決定,或者說這個訪問對類的使用者不可見。
換句話說,如果基類沒有間接訪問私有成員的代碼,子類就不能訪問基類的私有成員。
㈦ C++中派生類如何實現對基類私有成員的訪問
派生類不能對基類私有成員進行訪問。
要在派生類中對基類成員進行訪問,可以:
1,在派生類中對基類成員的public屬性進行訪問,以間接訪問基類的私有成員;
2,在基類中將私有成員定義為protected訪問屬性,以在派生類中直接對其進行訪問;
㈧ 派生類繼承了所有基類的數據成員,但為什麼不能訪問基類的私有成員
私有成員子類也繼承了,也是會在內存中創建。
無法訪問是語言層面給的限制,你厲害的話,可以跨過語言層。
訪問到私有變數。直接操作內存。