Notice
Recent Posts
Recent Comments
공부중
[C++] 상속관계에서의 생성자 소멸자 호출 본문
반응형
역시 이번에도 기초적인 내용이었다.
#include <iostream>
class A
{
public:
A() { std::cout << "A 생성자" << std::endl; }
~A() { std::cout << "A 소멸자" << std::endl; }
};
class B : public A
{
public:
B() { std::cout << "B 생성자" << std::endl; }
~B() { std::cout << "B 소멸자" << std::endl; }
};
int main()
{
A* a = new B();
delete a;
return 0;
}
코드는 위와 같다.
여기서 출력결과는 어떻게 될 것인가...
주목해야될것은 B의 부모는 A 클래스이고 각각의 클래스 소멸자에 virtual이 안붙어 있다.
이러면 당연히 소멸자에서는 부모먼저 제거가 되므로....
생성자는 A,B 순서 소멸자는 A 하고 끝날것이다....
출력결과는 아래와 같다.
반응형
'Programing > C, C++' 카테고리의 다른 글
[C++] 배열을 delete[] 가 아닌 delete로 제거했을 경우? (2) | 2019.04.08 |
---|---|
[C++] do while 문에서의 continue??? (0) | 2018.11.04 |
[C++] 함수 오버로딩에서 적절한 파라미터를 못찾는다면? (0) | 2018.11.04 |
[C++]스마트포인터(Smartpointer) - shared_ptr 메모리 누수(memory leak)에 관련해서 (0) | 2018.05.31 |
[C++]스마트포인터(Smartpointer) - shared_ptr (0) | 2018.05.30 |