class A
{
public:
A();
~A();
};
class B : public A
{
public:
B();
~B();
};
이런 종속관계에 있는 클래스가 있을때
int main()
{
B *Test = new B;
delete B;
}
이런 식으로 자식 클래스를 선언하고 자식 클래스를 할당하면 소멸자에 virtual 명령어를 안넣어도
delete 하면 부모도 죽고 자식도 잘 죽던데 이 코드를
int main()
{
A *Test = new B;
delete B;
}
이렇게 부모 클래스를 선언하고 자식 클래스를 할당해주는 코드를 보여주면서
이게 virtual 명령어를 사용하는 이유다 라고 적혀 있길래
납득이 잘 가지 않아서 질문 드립니다.