Woher weiß Compiler wann Kopierkonstruktor

XxbambamxX

Mitglied
Hi
Ich habe eine kleine Frage zum Thema Kopierkonstruktor.
Ich habe ein kleines Spielchen geschrieben und benötigte da einen Kopierkonstruktor.
Das funktioniert zwar alles ganz prima aber ich kann mir nicht erklären woher das der kompiler weiss, wann der kopierkonstruktor zu wählen ist den ich selber geschrieben habe da sich dieser vom Syntax in keinster Weise unterscheidet .:confused:

mfg
 
Frage: Von was unterscheidet sich dein Copy-Konstruktor in keinster Weise? Ich verstehe die Fragestellung nicht ganz. Kannst du mal etwas Code zeigen?
 
prinzipiell ja ganz einfach.

Wenn du ein Objekt der Klasse A durch ein anderes Objekt der Klasse A erstellen/initialisieren willst, wird der copy constructor aufgerufen.
z.B.
C:
Point p1 = new Point(x,y); //ruft den normalen Konstruktor auf
Point p2 = p1; //ruft den copy constructor auf

und der Unterschied der 2 Konstruktoren
C:
public class Point 
{
...
public Point::Point(int x, int y) //normaler Konstruktor
{
//zuweisung über parameter
}

public Point::Point(const Point& p)  //copy Constructor
{
//zuweisung über *p.
}
...
}

Gruß
 
Zuletzt bearbeitet:
Hi!

Der Kopierkonstruktor ist (auch für den Compiler) eindeutig der, welcher - ausschließlich - eine Referenz auf ein bestehendes Objekt erwartet.

Gruß
Enum
 
Zurück