파생 클래스 생성자에서 기본 클래스 멤버 변수를 올바르게 초기화하는 방법은 무엇입니까?
Dec 05, 2024 am 01:14 AM파생 클래스 생성자에서 기본 클래스 멤버 변수를 초기화하는 방법
객체 지향 프로그래밍에서는 다음을 상속하는 파생 클래스를 갖는 것이 일반적입니다. 기본 수업. 파생 클래스에서 생성자를 생성할 때 기본 클래스에서 상속된 멤버 변수를 올바르게 초기화하는 것이 중요합니다.
다음 코드를 고려하세요.
class A { public: int a, b; }; class B : public A { B() : A(), a(0), b(0) { } };
이 예에서 파생 클래스 B 자체 생성자 내에서 멤버 변수 a와 b를 초기화하려고 시도합니다. 그러나 이는 잘못된 접근 방식입니다. 파생 클래스에서 기본 클래스 멤버 변수를 초기화하는 올바른 방법은 기본 클래스의 생성자를 사용하는 것입니다.
class A { protected: A(int a, int b) : a(a), b(b) {} // Accessible to derived classes private: int a, b; // Keep these variables private in A }; class B : public A { public: B() : A(0, 0) // Calls A's constructor, initializing a and b in A to 0. { } };
기본 클래스 생성자를 액세스 가능하게(보호 또는 공개) 만들고 파생 클래스의 생성자에서 호출합니다. , 상속된 멤버 변수를 올바르게 초기화합니다. 이 접근 방식을 사용하면 파생 클래스 코드가 실행되기 전에 기본 클래스가 적절하게 초기화됩니다.
파생 클래스에서 기본 클래스 멤버 변수를 공개로 만드는 것은(잘못된 예에서와 같이) 권장되지 않습니다. 캡슐화 원칙을 통해 보호된 데이터 또는 개인 데이터에 대한 외부 액세스를 허용합니다.
위 내용은 파생 클래스 생성자에서 기본 클래스 멤버 변수를 올바르게 초기화하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

인기 기사

인기 기사

뜨거운 기사 태그

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











C 언어 함수에 의해 반환 된 값 유형은 무엇입니까? 반환 값을 결정하는 것은 무엇입니까?

STL (정렬, 찾기, 변환 등)의 알고리즘을 효율적으로 사용하려면 어떻게합니까?
