Позволяет ли стандарт С++ объявить деструктор как final
? Вот так:
class Derived: public Base
{
...
virtual ~Derived() final;
}
И если да, то это предотвращает объявление производного класса:
class FurtherDerived: public Derived {// allowed?
}
Если это разрешено, компилятор может выдать предупреждение? Объявляет ли деструктор final
работоспособной идиомой для указания того, что класс не предназначен для использования в качестве базового класса?
(нет смысла делать это в конечном базовом классе, только производный класс.)