좋아요, 아주 기본적인 질문이 있습니다. 제발 쉽게가주세요.기본 생성자가 호출되는 이유는 무엇입니까?
#include<iostream>
class base
{
public:
base() { std::cout << "Base()" << std::endl; }
};
class derived: base {
public:
derived() { std::cout << "Derived()" << std::endl; }
};
int main() {
derived d;
}
출력은 다음과 같습니다 : 다음 코드에서
싶습니다자료() 파생
()
알고 왜의 생성자 클래스의 객체를 만들었지 만 base
클래스가 호출됩니까? FAQ
에서 적절한 답을 찾을 수 없습니다.
나는 [this] (http://www.desy.de/gna/html/cc/Tutorial/tutorial.html)과 같은 것을 읽음으로써 시작할 것입니다. – Mehrdad
생성자의 목적은 객체를 사용할 수있게 만드는 것입니다. 당신이 기본 생성자를 호출하지 않았다면 모든 파생 클래스는 객체를 사용할 수있게 만들기 위해 모든 기본 클래스가 필요로하는 모든 설정을 수행해야합니다 ... 어느 것이 캡슐화 등으로 잘 작동하지 않습니다. – forsvarir