C++에서는 생성자의 호출 순서가 자식-> 부모 순서이고,
생성자 실행 완료 순서가 부모 -> 자식 순서이다.
class Parent
{
protected: //자신을 상속한 클래스에서는 접근할 수 있게 지정함
int m_i;
};
class Child : public Parent
{
public:
Child()
: Parent() // 생략돼있음, 이니셜라이저 순서 상관 없이 가장 먼저 호출
,m_f(0.f)
{}
};
int main()
{
Child child; // 자식 클래스의 생성자를 호출한다. (당연한 말)
}
자식 생성자가 호출되면 자식 생성자가 실행되기 전에 부모를 호출하며,
부모 생성자의 실행이 완료돼서 반환이되면 자식 생성자의 내용이 실행된다.
자식 생성자에 부모 생성자를 명시할 수 있다.(평소에는 생략.)
C#은 어떤가??
일단 검색 해보면 전부 부모 -> 자식 순서로 생성자가 "호출"된다고 나와있다.
일단은 그런거로 알고.. 좀 더 자료를 찾아보고 후에 정리해봐야겠다.