abstrakte Klasse oder nicht



  • Wann genau ist es sinnvoll eine abstrakte Klasse zu benutzen?

    Ich habe eine klasse die lediglich repräsentiert, das man etwas speichern kann, die klasse für sich genommen sollte nicht instanziert werden. Allerdings ist es auch nur bedingt sinnvoll, das die erbende Klasse die Methoden implementiert (was sie aber müsste wenn cih die Klasse abstrakt machen will), da die ja eigentlich nichts damit zu tun haben soll. Wie soll ich die Klasse kennzeichnen?

    danke für eure Hilfe



  • Verwende einen virtuellen abstrakten destructor. Destruktoren wirst du doch wohl implementieren?



  • Gib allen Methoden Funktionskörper, bei denen es sinnvoll ist. Wenn nachher keine pur virtuelle Funktion mehr übrig bleibt, mach den Destruktor pur virtuell. Diesem gibst du eine Definition außerhalb der Klassendefinition.

    PS: Ja, ich bin mir bewusst, dass auch pur virtuelle "normale" Funktionen eine Implementierung haben können. Allerdings braucht man diese sehr selten. Siehe z. B. http://www.gotw.ca/gotw/031.htm



  • Danke :), besonders der Link war hilfreich.


Anmelden zum Antworten