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

rewb0rn

Supermoderator

Beiträge: 2 773

Wohnort: Berlin

Beruf: Indie Game Dev

  • Private Nachricht senden

11

08.09.2008, 15:16

Hmm und was genau soll dann passieren? Ich erzeuge doch jedes Objekt immer explizit, wie soll ich mir so einen virtuellen Konstruktor vorstellen?

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

12

08.09.2008, 15:25

Zitat von »"knivil"«

Hmm, ich kenne da nur die beruehmt beruechtigten "create" oder "build" Methoden.


Jo, auch bekannt als virtual constructor idiom. Aber berüchtigt ist das Idiom keineswegs.

@rewb0rn:
Du kannst z.B. vorhandene Instanzen verwenden, um Objekte zu erzeugen (oder zu klonen), ohne den konkreten Typ kennen zu müssen.
Das ist z.B. sehr hilfreich für Factory-Klassen.
@D13_Dreinig

rewb0rn

Supermoderator

Beiträge: 2 773

Wohnort: Berlin

Beruf: Indie Game Dev

  • Private Nachricht senden

13

08.09.2008, 16:27

stimmt da macht es sinn, an sowas hatte ich nicht gedacht.

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

14

08.09.2008, 21:44

ja, den factory method pattern nennt man oft auch "virtual constructor".
aber ein virtueller konstruktor, jetzt rein auf C++ bezogen, kann nicht existieren.

man braucht doch nur zu bedenken wofür es virtuelle methoden gibt:
um methoden eines objektes aufzurufen ohne den dynamischen typ des objektes wirklich zu kennen.

um ein objekt zu erzeugen muss man aber zweifelsfrei den dynamischen typ des objektes kennen.
es mag zwar die angesprochenen design pattern geben, aber die verlagern die entscheidung über den dynamischen typ des erzeugten objektes nur an eine andere stelle im code...

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

15

08.09.2008, 21:54

Das Idiom simuliert aber das Verhalten eines virtuellen Konstrukturs (daher ja auch der Name). Dass virtuelle Konstruktoren C++ Technisch nicht möglich sind bezweifel ich ja garnicht. Aber das Idiom kann, wie ein virtueller Konstruktor, zum konstruieren von Typen, ohne Kenntnis über den konkreten Typ, verwendet werden.

Der Begriff "Konstruktor" muss sich ja nicht nur zwangsläufig auf das beziehen was man bei C++ unter "Konstruktor" versteht!
@D13_Dreinig

Werbeanzeige