#include <iostream>
#include <string>
using namespace std;
class A
{
private:
int ai;
string as;
};
class B : public A
{
private:
int bi;
string bs;
};
int main()
{
B bob;
return 0;
}
클래스 A와 B에는 기본 생성자가 있습니다. 그리고 클래스 A 기본 생성자가 먼저 호출 된 다음 B 기본 생성자가 호출된다는 것을 알고 있습니다. 그러나 문제는 그것이 내부적으로 어떻게 발생 하는가입니다. 데이터 멤버가 상속 순서로 생성됩니까? 컴파일러는 어떻게 dervied ctor에서 기본 ctor로 전화를 걸립니까?파생 클래스 생성자가 내부적으로 기본 클래스 생성자를 호출하는 방법
참조 http://stackoverflow.com/a/6308944/1463922 – PiotrNycz
@Bathsheba Nope! 복제본이 아닙니다. 나는 그 행동이 무엇인지 묻지 않을 것이다. 내부적으로 어떻게 수행되는지를 묻습니다. 컴파일러에 의해 ctor가 먼저 호출되는 방법? – deepdive
@deepdive 컴파일러 제작자는 원하는대로 동작을 구현할 수 있습니다. 알아내는 유일한 방법은 컴파일러 소스 또는 생성 된 어셈블리를 읽는 것입니다. – molbdnilo