內部類別存取私有變數
在 C 中,內部類別嵌套在其他類別中,並具有特殊的存取權限。那麼問題來了:內部類別可以存取父類別的私有變數嗎?
答案是可以。內部類別本質上是它們所定義的類別的友元。這意味著內部類別的物件可以直接存取其父類別物件的私有成員。
但是,與Java不同的是,內部類別物件和父類別物件之間不存在隱式的父子關係。其父類別的物件。要建立這種關係,必須將父類別物件明確傳遞給內部類別的建構子。
以下是示範內部類別存取私有變數的程式碼範例:
#include <iostream> class Outer { private: int var = 4; static const char* const MYCONST = "myconst"; public: class Inner { public: Inner(Outer& parent) : parent(parent) {} void func() { std::cout << parent.var << std::endl; } private: Outer& parent; }; }; int main() { Outer outer; Outer::Inner inner(outer); inner.func(); return 0; }
在此例如,內部類別 Inner 有一個建構函數,它將父 Outer 物件的引用作為參數。這就建立了父子關係,允許內部類別存取外部物件的私有變數var。
當調用Inner::func()時,它會列印私有變數var的值,並示範內部類別確實可以存取其父類別的私有變數。
以上是C 中的內部類別可以存取其父類別的私有變數嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!