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

11

08.05.2008, 13:42

Anstatt friends kann man auch einfach eine static public Create Funktion erstellen, die dann ein Object auf dem Heap erstellt.

Allerdings halte ich das auch für Unsinnig, es verhinden zu wollen, dass eine Klasse überladen werden kann.

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

12

08.05.2008, 13:47

Zitat von »"Florianx"«

Anstatt friends kann man auch einfach eine static public Create Funktion erstellen, die dann ein Object auf dem Heap erstellt.


Was aber wenn man keine Instanz auf dem Heap haben will? Immer dran denken, dynamische Speicherallokation ist langsam! :)
Wie auch immer, ich hab ja oben eine Möglichkeit gepostet.
@D13_Dreinig

WhiteMike

Alter Hase

  • »WhiteMike« ist der Autor dieses Themas

Beiträge: 507

Wohnort: Ulm

Beruf: Schüler

  • Private Nachricht senden

13

08.05.2008, 15:20

Im Buch ist ein Beispiel, dass man die STL-Klassen ableiten kann, obwohl sie gar keinen virtuellen Destruktor haben und so beim Aufräumen nicht vollständig abgebaut werden können.

Die Sache mit der immer bestehenden Möglichkeiten zur Erweiterung ist natürlich gut.

Mit freundlichen Grüßen,
WhiteMike

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

14

08.05.2008, 15:26

Kein vorhandener virtuelle Destruktor impliziert aber nicht das die Klasse nicht als Basisklasse fungieren darf. Die Faustregel ist zwar das, wenn von einer Klasse öffentlich abgeleitet werden soll, der Destruktor virtuell sein sollte. Aber es ist auch nur eine Richtlinie, und nicht zwangsläufig will man eine virtuelle Funktionstabelle, auch wenn die jeweilige Klasse als Basisklasse gedacht ist.
@D13_Dreinig

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

15

08.05.2008, 18:09

Zitat von »"WhiteMike"«

Im Buch ist ein Beispiel, dass man die STL-Klassen ableiten kann, obwohl sie gar keinen virtuellen Destruktor haben und so beim Aufräumen nicht vollständig abgebaut werden können.


Probleme bekommt man erst dann, wenn man solche Objekte am Heap anlegt und über einen Baisklassenzeiger deleten will. Wer das macht is aber selber schuld...

WhiteMike

Alter Hase

  • »WhiteMike« ist der Autor dieses Themas

Beiträge: 507

Wohnort: Ulm

Beruf: Schüler

  • Private Nachricht senden

16

09.05.2008, 10:21

Hm...

Richtig. Danke, Leute.
Immer hinterfragen, was in Büchern steht. ^^

Mit freundlichen Grüßen,
WhiteMike

Werbeanzeige