C++ common sense 1 ~ 5
- 자식 객체를 생성하면 부모–>자식 순서로 생성자가 호출되며, 소멸자는 그 반대로 호출된다.
- 결과
Base() Derived() ~Derived() ~Based()
- 결과
- 객체가 생성되면 해당 클래스에 포함된 객체들의 생성자가 먼저 호출된다. 생성자가 실행될 시점에는 클래스에 속한 객체들의 생성자가 모두 호출된 상태이다.
- 결과
Base() Derived() Handler() ~Handler() ~Derived() ~Base()
- 결과
-
포인터 변수만 선언한다고 객체가 생성되지 않는다.
- 스택에 할당된 객체는 스코프가 끝나면 소멸되지만, 힙에 할당된 객체는 꼭!!! delete를 호출하여 메모리를 해제해 줘야 소멸자가 호출된다.
- 결과
Base() Derived() Handler() ~Derived() ~Base() ~Handler()
- 결과
- 스마트 포인터를 사용하면 delete를 신경쓰지 않아도 된다.
- 결과
Base() Derived() Handler() ~Handler() ~Derived() ~Base()
- 결과