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

07.01.2012, 18:18

Frage zu 11.3 Memberinitialisierung im Konstruktor

Hallo Leute,
hab mir gerade dieses Kapitel durchgelesen,
verstehe aber noch nicht wirklich, was da passiert? Kann mir einer vielleicht ein einfacheres Beispiel geben?
Das mit der Instanz einer Klasse in einer Klasse hat mich doch ziemlich verwirrt...

Ist dieses Kapitel denn sehr wichtig?
Denn bevor ich mir noch länger den Kopf darüber zerbreche, würde ich es einfach überspringen...

Danke

drakon

Supermoderator

Beiträge: 6 513

Wohnort: Schweiz

Beruf: Entrepreneur

  • Private Nachricht senden

2

07.01.2012, 18:25

Was verstehst du denn nicht? Hast du ein Beispiel, dass dir nicht klar ist?

Einfaches Beispiel:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
class foo
{
public:
  foo(): mI(2), mS("hallo"){} // initialisierung von mI und mS
private:
  const int mI;
  std::string mS;
};


Ist das klar oder was verstehst du daran nicht?

3

07.01.2012, 18:42

Also, es ist immer schwer zu sagen, was genau, denn wann man weiß was man genau nicht versteht, dann kann
man das dann auch genau im internet recherchieren oder so...

Nun ja, ich bin mir nicht sicher, aber ich glaube ich versteh nicht, warum der compiler weiß, welche Konstruktor er verwenden soll.
Oder was der Entscheidende Code ist, damit der Compiler weiß, dass man nicht den Standard-Konstrukter verwenden soll.
Vielleicht versteh ich die Syntax noch nicht ganz...
Ich werd mir noch mal etwas mehr gedanken darüber machen müssen.

Trotzdem für die schnelle Antwort

BurningWave

Alter Hase

Beiträge: 1 106

Wohnort: Filderstadt/Konstanz

Beruf: Student

  • Private Nachricht senden

4

07.01.2012, 18:55

Der Compiler unterscheidet überladene Funktionen allgemein (sowie überladene Konstruktoren) anhand ihrer Parameterliste. Der Standardkonstruktor erwartet keine Parameter. Wenn du nun beim Erzeugen des Objekts Parameter angibst, wird dementsprechend ein anderer Konstruktor aufgerufen.

Werbeanzeige