La norme C++ permet-elle de déclarer un destructeur en tant que final
? Comme ça :
class Derived: public Base
{
...
virtual ~Derived() final;
}
Et si oui, cela empêche-t-il la déclaration d'une classe dérivée :
class FurtherDerived: public Derived {// allowed?
}
Si elle es autorisé, un compilateur est-il susceptible d'émettre un avertissement ? Est-ce que déclarer un destructeur pour être final
un idiome utilisable pour indiquer qu'une classe n'est pas destinée à être utilisée comme classe de base ?
(Il y a aucun intérêt à faire cela dans une classe de base ultime seulement une classe dérivée).