Hallo zusammen
Ich habe eine kleine Frage bezüglich Konstruktoren. Die Funktionen (bzw. die überladenen Operatoren) der Vekotrklasse tbVecotr3 in David Scherfgens Buch 3D-Spieleprogrammierung verwenden oftmals:
|
C-/C++-Quelltext
|
1
|
return tbVector3 (x, y, z);
|
Dies bedeutet ja, dass der Konstruktor der Vektorklasse aufgerufen wird und dabei eine Instanz der Klasse entsteht, welche ihre Werte an die (Funktion-)aufrufende Instanz übergibt. Mich würde nun interessieren was hier genau passiert. Kann man einen Konstruktor direkt aufrufen? Ich dachte, dass geschieht nur wenn ein Objekt der Klasse erzeugt wird. Irgendwie sieht es hier jedoch aus, als würde der Konstruktor gar kein Objekt erzeugen. Ich hab in einer kleinen Konsolenanwendung auch folgendes versucht:
|
C-/C++-Quelltext
|
1
2
3
4
5
6
7
8
9
10
|
int main ()
{
MyClass::MyClass(1, 2, 3); // Der Konstruktor wird aufgerufen, anschliessend aber auch gleich der Destruktor
MyClass AnyObject; // Aufruf mit Standard-Konstruktor
AnyObject = MyClass::MyClass (4, 5, 6); // Die drei int-Variablen der AnyObject-Instanz erhalten die Werte 4, 5, 6
};
|
Wieso funktioniert das? Vermutlich ist die Antwort ganz einfach, aber irgendwie stehe ich gerade total auf dem Schlauch
Vielen Dank schonmal im Voraus.
Gruss Da_CH