상속에서 생성자와 소멸자 호출 순서
상속 클래스를 정의할 때 생성자와 소멸자가 호출되는 순서를 이해하는 것이 중요합니다. . 다음 예를 고려하십시오.
struct A { A() { cout << "A() C-tor" << endl; } ~A() { cout << "~A() D-tor" << endl; } }; struct B : public A { B() { cout << "B() C-tor" << endl; } ~B() { cout << "~B() D-tor" << endl; } A a; };
구성 순서:
따라서 구성 순서는 는:
파기명령:
소멸자는 역순으로 호출됩니다. construction:
파괴 순서 is:
초기화 프로그램 목록 :
B에 명시적인 초기화 목록이 정의되어 있지 않더라도 기본 초기화 목록은 컴파일러에 의해 자동으로 생성됩니다. 이 목록은 기본 생성자를 사용하여 기본 클래스(A)와 멤버 필드(a)를 초기화합니다.
결론적으로 상속 시 생성자 및 소멸자 호출 순서는 특정 규칙을 따릅니다. 생성자는 기본 클래스를 먼저 초기화한 다음, 멤버 필드, 마지막으로 파생 클래스입니다. 소멸자는 정리 프로세스를 역순으로 호출합니다. 상속을 사용할 때 강력한 코드를 작성하려면 이러한 규칙을 이해하는 것이 필수적입니다.
위 내용은 C 상속에서 생성자와 소멸자 호출 순서는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!