여기 http://www.parashift.com/c++-faq-lite/multiple-inheritance.html 섹션 [25.14]을상속 hierachy : 생성자 및 소멸자 실행 순서
실행될 최초 생성자 어디 계층에 가상베이스 클래스이다 말한다.
나는 다음과 같은 프로그램을 사용하여 확인하려고 :
A (pure virtual)
|
B
|
C
(virtual)/ \ (virtual)
E D
\ /
F
|
G (pure virtual)
|
H
각 클래스는 c'tor 및 가상 디부 토르있다. 출력은 다음과 같습니다.
A
B
C
E
D
F
G
H
~H
~G
~F
~D
~E
~C
~B
~A
Press any key to continue . . .
하지만 가상 기본 클래스 생성자가 먼저 실행되어야합니다.
내가 무엇을 undestand 잘못 했습니까?
EDIT : 내 이해에 따라이 동작은 기본 클래스가 가상 클래스인지 여부와 관련이 없습니다. 그러나 견적은 가상 기본 클래스에 주장한다. 내가 분명하거나 뭔가 비린내가있어?
감사합니다.
보다 정확한 답변을 위해 사용했던 코드를 제공해주십시오. – amit
@amit, 코드는 필요 없습니다. 이 동작은 예상대로입니다 ... – eran