Alles virtuell



  • Hallo!

    Interessehalber: Wenn Performance kein Argument ist, spricht dann etwas dagegen, in einem Softwareprojekt die Methoden aller Klassen aus Bequemlichkeit virtuell zu machen?

    Danke,



  • Bequemlichkeit ist nie ein Argument. virtual hat seine klare Bedeutung und Verwendung. Google mal nach "non virtual interface" und "fragile base class".
    Wenn nicht vorgesehen ist, dass eine Klasse über Implementierung spezieller Methoden anpassbar sein soll, lass das virtual bleiben. Ableiten geht ja auch ohne virtual, kannst dann halt nicht polymorph (nur über einen Basisklassenzeiger) drauf zugreifen.



  • Selbst bei "polymorphen" Klassen sehe ich keinen Grund alle Funktionen virtual zu machen. Eher im Gegenteil: es ist höchst unbequem und mMn unschlau wenn alle Methoden virtual sind, da man sich nicht darauf verlassen kann dass sie nicht in abgeleiteten Klassen überschrieben werden. Was schnell mal eine Klasse "brechen" kann.


Anmelden zum Antworten