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

Anonymous

unregistriert

1

06.02.2005, 14:45

Default-Konstruktor

Hallo,

in meinem C++-Buch steht, dass der Compiler automatisch einen Default-Konstruktor erstellt, wenn überhaupt kein Konstruktor in der Klasse definiert ist.
Allerdings initialisiert dieser Default-Konstruktor laut Buch keine Variablen (Objekte?).

Was tut er dann überhaupt??

helium

Treue Seele

Beiträge: 180

Wohnort: NRW, Burscheid (nahe Köln)

  • Private Nachricht senden

2

06.02.2005, 15:15

Er ruft die C-toren der Basisklassen und der Member auf.
Why is 6 afraid of 7?
Because 7 8 9

C++Amateur

Frischling

Beiträge: 50

Wohnort: irgendwo in der Milchstraße

Beruf: Schüler

  • Private Nachricht senden

3

06.02.2005, 15:15

Ich würd mal sagen dass der Konstruktor die verschidenen Variablen deklariert. Um die Werte muss man sich dann eben selbst kümmern.

C++Amateur

Frischling

Beiträge: 50

Wohnort: irgendwo in der Milchstraße

Beruf: Schüler

  • Private Nachricht senden

4

06.02.2005, 15:16

Ach,
da war ich wohl zu spät!

Anonymous

unregistriert

5

06.02.2005, 17:26

Ok, danke.

Dave

Alter Hase

Beiträge: 757

Wohnort: Berlin

  • Private Nachricht senden

6

06.02.2005, 21:15

die wichtigste aufgabe des c'tors ist wohl die speicherreservierung....

helium

Treue Seele

Beiträge: 180

Wohnort: NRW, Burscheid (nahe Köln)

  • Private Nachricht senden

7

07.02.2005, 10:41

Naja, darum kümmert sich normaler weise der "operator new". Den müsstst du dann aber extra überladen. Oder du gibst edich einfach mit der standardallokierung zu freiden.
Der Konstruktor konstruiert eigentlich nur das Objekt im bereits allokierten Speicherbereich. Schön zu sehen ist das z.B. am "placement new", mit dem du ein Objekt an einer beliebigen Stelle konstruieren kannst. Es ist quasi nur ein Konstruktoraufruf an einer bestimmten Stelle.


C-/C++-Quelltext

1
2
3
4
5
#include <new>

char inDiesesFeldSollEs[sizeof(Typ)];

new(inDiesesFeldSollEs) Typ;


Der Konstruktor wird in dem vorher von mir angelegten Speicher aufgerufen und konstruiert somit an dieser Stelle das Objekt.
Why is 6 afraid of 7?
Because 7 8 9

Werbeanzeige