При каких обстоятельствах выгодно давать реализацию чисто виртуальной функции?
В 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
Я не понимаю, почему деструктор объявлен чисто виртуальным, а затем реализован; и я не понимаю комментарий, почему это должно быть быстрее.