Quando un metodo è dichiarato come virtual
in una classe, i suoi override nelle classi derivate sono considerati automaticamente virtual
pure, e il linguaggio C++ rende questa parola chiave virtual
opzionale in questo caso:Perché l'opzione 'virtuale' è facoltativa per i metodi sottoposti a override nelle classi derivate?
class Base {
virtual void f();
};
class Derived : public Base {
void f(); // 'virtual' is optional but implied.
};
La mia domanda è: Che cosa è la logica per rendere virtual
facoltativo?
So che non è assolutamente necessario che il compilatore venga informato, ma penserei che gli sviluppatori potrebbero trarre vantaggio dal fatto che il compilatore abbia applicato tale vincolo.
esempio a volte quando ho letto il codice altrui mi chiedo se un metodo è virtuale e devo rintracciare sue superclassi di determinare che. E alcuni standard di codifica (Google) lo rendono un 'must' per mettere la parola chiave virtual
in tutte le sottoclassi.
Pensa che vorresti rimuovere '= 0' da' NonVirtualBase' :) –
@Matthieu - buona cattura! Oggi sono piuttosto assonnato xD –