개인 변수에 대한 내부 클래스 액세스
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 개체에 대한 참조를 인수로 사용하는 생성자가 있습니다. 이는 내부 클래스가 Outer 객체의 전용 변수 var에 액세스할 수 있도록 부모-자식 관계를 설정합니다.
Inner::func()가 호출되면 전용 변수 var의 값을 인쇄하여 보여줍니다. 내부 클래스는 실제로 상위 클래스의 비공개 변수에 액세스할 수 있습니다.
위 내용은 C의 내부 클래스가 상위 클래스의 개인 변수에 액세스할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!