При каких обстоятельствах выгодно давать реализацию чисто виртуальной функции?

В C ++ допустимо давать реализацию чисто виртуальной функции:

class C
{
public:
  virtual int f() = 0;
};

int C::f() 
{
  return 0;
}

Зачем тебе это делать?

Связанный вопрос:C ++ faq lite содержит пример:

class Funct {
public:
  virtual int doit(int x) = 0;
  virtual ~Funct() = 0;
};

inline Funct::~Funct() { }  // defined even though it's pure virtual; it's faster this way; trust me

Я не понимаю, почему деструктор объявлен чисто виртуальным, а затем реализован; и я не понимаю комментарий, почему это должно быть быстрее.

Ответы на вопрос(6)

Ваш ответ на вопрос