가상 소멸자1 가상 소멸자의 사용 이유 - 클래스 내부에서 메모리를 동적할당하는 경우 소멸자에서 메모리 해제를 해주는데, 상속받은 부모의 소멸자가 가상 소멸자가 아닌 경우 객체 생성시 실제 객체의 클래스가 아닌, 생성된 포인터 자료형에 따라 소멸자가 호출된다. 결국 부모 클래스의 소멸자만 호출되고 메모리 누수가 발생한다. 하여 다형성을 지원할 수 있는 기본 클래스의 경우 소멸자를 가상함수로 지정해 놓아야한다. 예를 들면 Class A{A();~A();} Class B : public A{B();~B();} 이렇게 있을 경우 효율적인 객체 관리 (다형성) 를 위해 A* a = new B(); 이런식으로 B 객체를 A 클래스 포인터 자료형으로 만들어서 A* 객체들을 관리할 수 있다.하지만 이때 객체 a의 실제 객체는 B 클래스다.여기서 a가 파괴.. 2014. 9. 22. 이전 1 다음