Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

10.09.2013, 22:57

sinnlose Basisklasse?

Hi,

welchen Sinn hat denn folgende Klasse?

C-/C++-Quelltext

1
2
3
4
5
class worldobject
{
public:
    virtual ~worldobject() {};
};


Selbstverständlich erben speziellere Objekte davon, aber die (Ober)Klasse wird im gesamten Projekt nicht einmal generisch benutzt. Kann man sich das also nicht einfach sparen oder hat das noch irgendeinen Sinn, der sich mir nicht erschließt?

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

2

10.09.2013, 23:12

Ich würde mal vermuten, der Sinn der Klasse ist es, sicherzustellen, dass gewissen Typen einen virtuellen Destruktor haben und daher polymorph deleted werden können.

3

11.09.2013, 10:52

Du meinst also, Erben über diese Basisklasse zu löschen? Klar, das ist ja die klassische Verwendung solcher Basisklassen, kommt in diesem Fall eben nur nie vor. Vielleicht ist es vergessen worden bzw. ist dann auf Erweiterbarkeit ausgelegt. Oder der Autor hat die Ebene einfach zur besseren Realitätsabbildung noch eingefügt. Keine Ahnung, hätte ja sein können, dass es da noch einen außergewöhnlichen Grund gibt. ;)

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

4

11.09.2013, 10:58

Vielleicht geht es auch nur darum, sicherzustellen, dass alle worldobjects polymorphe Typen sind und Dinge wie RTTI und dynamic_cast damit funktionieren. Beides natürlich nicht unbedingt Zeichen von gutem Design...

Werbeanzeige