pure virtual로 선언해놓고 define하는 destructor에 대한 설명입니다.
class Foo { public: virtual ~Foo()=0; }; Foo::~Foo() { .... }
한마디로 말하면, abstract 클래스였으면 하는데 pure virtual method는 없을 때 씁니다. abstract였으면 한다는 건, 실제 Foo 클래스를 쓸 용도는 아니고 쓸려면 이 클래스를 상속받아서 새 클래스를 만든다음 새 클래스를 썼으면 한다는 의도를 표현하는 것입니다.