>백엔드 개발 >C++ >파생 클래스 생성자에서 기본 클래스 멤버 변수를 올바르게 초기화하는 방법은 무엇입니까?

파생 클래스 생성자에서 기본 클래스 멤버 변수를 올바르게 초기화하는 방법은 무엇입니까?

Linda Hamilton
Linda Hamilton원래의
2024-12-05 01:14:10686검색

How to Correctly Initialize Base Class Member Variables in a Derived Class Constructor?

파생 클래스 생성자에서 기본 클래스 멤버 변수를 초기화하는 방법

객체 지향 프로그래밍에서는 다음을 상속하는 파생 클래스를 갖는 것이 일반적입니다. 기본 수업. 파생 클래스에서 생성자를 생성할 때 기본 클래스에서 상속된 멤버 변수를 올바르게 초기화하는 것이 중요합니다.

다음 코드를 고려하세요.

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.