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

06.09.2008, 21:09

virtuelle Konstruktoren überschreiben?

Ich mach einfach mal zwei Beispiele, und ihr sagt mir, welches richtig ist:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
class Bsp1
{
public:
      virtual Bsp1(void* Data);
}

class Bsp2::public Bsp1
{
public:
     virtual Bsp1(void* Data);  //soll den Konstruktor von Bsp1 überschreiben

}

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
class Bsp1
{
public:
      virtual Bsp1(void* Data);
}

class Bsp2::public Bsp1
{
public:
     virtual Bsp2(void* Data);  //soll den Konstruktor von Bsp1 überschreiben

}

xardias

Community-Fossil

Beiträge: 2 731

Wohnort: Santa Clara, CA

Beruf: Software Engineer

  • Private Nachricht senden

2

06.09.2008, 21:12

Ähm. Ich weiß nicht was du dir davon versprichst, aber Konstruktoren als virtuell zu deklarieren macht keinen Sinn.

Erzeugst du eine Instanz einer Klasse so wird immer der Konstruktor von dieser Klasse aufgerufen. Da musst du nichts überschreiben.

rewb0rn

Supermoderator

Beiträge: 2 773

Wohnort: Berlin

Beruf: Indie Game Dev

  • Private Nachricht senden

3

06.09.2008, 21:13

Die beiden Beispiele sind doch identisch?
Also erstmal macht man nur einen : nicht :: beim Ableiten.
Zu den Konstruktoren:
Da du die Instanzen sowieso nur explizit erzeugen kannst, brauchst du kein virtual.

4

06.09.2008, 21:30

Oh, stimmt, ich bin blöd :oops:
hab eindeutig zu lange nicht mehr programmiert ;)

xardias

Community-Fossil

Beiträge: 2 731

Wohnort: Santa Clara, CA

Beruf: Software Engineer

  • Private Nachricht senden

6

06.09.2008, 22:00

Zitat von »"xardias"«


ich dachte, das wäre ein "geflügeltes Wort"

7

07.09.2008, 00:26

Zitat von »"xardias"«


hmmmm

ROFL :D
Lieber dumm fragen, als dumm bleiben!

8

08.09.2008, 14:22

Wer legt denn die virtuelle Methodentabelle an? Richtig, der Konstruktor. Ergo kann er nicht virtuell sein.

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

9

08.09.2008, 14:38

Zitat von »"knivil"«

Wer legt denn die virtuelle Methodentabelle an? Richtig, der Konstruktor. Ergo kann er nicht virtuell sein.


Das nicht, aber um virtuelle Konstruktion trotzdem nutzen zu können gibts ja andere Möglichkeiten! :)
@D13_Dreinig

10

08.09.2008, 15:00

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

Werbeanzeige