Pure virtual function with definition?

Tags:

http://gotw.ca/gotw/031.htm

pure virtual로 선언해놓고 define하는 destructor에 대한 설명입니다.

class Foo {
 public:
  virtual ~Foo()=0;
};

Foo::~Foo() {
  ....
}

한마디로 말하면, abstract 클래스였으면 하는데 pure virtual method는 없을 때 씁니다. abstract였으면 한다는 건, 실제 Foo 클래스를 쓸 용도는 아니고 쓸려면 이 클래스를 상속받아서 새 클래스를 만든다음 새 클래스를 썼으면 한다는 의도를 표현하는 것입니다.