DanDanger
02-11-2003, 21:19
Hallo,
ich hab' mal ne' kleine Frage zu Zeigern und Referenzen (das leidige Thema)....
ich habe eine Klasse "Punkt"
class Punkt
{
public :
int x, y ;
(.......)
}
Nun habe ich eine Funktion, der ich per Referenz 1 Punkt-Objekt Übergebe.
Ich möchte halt, das die x,y Werte des Objekts in der Funktion geändert werden:
void foo(Punkt *EinPunkt)
{
EinPunkt->x += 10 ;
EinPunkt->y += 20 ;
}
void main()
{
Punkt aPoint(50, 50) ; // initialisiert den Punkt mit den x/y Werten (50, 50)
foo(&aPoint) ;
cout << aPoint.x << ", " << aPoint.y << endl ;
}
Als Ausgabe erhalte ich aber trotzdem nur : 50, 50
die Punk-Objekt-Werte wurden also nicht geändert.
Meine Frage : Was mache ich falsch, schliesslich ändere ich doch die Werte der Objekte,
auf der die Zeiger Zeigen, oder nicht :confused: ???
Neugierige Grüsse
DanDanger
ich hab' mal ne' kleine Frage zu Zeigern und Referenzen (das leidige Thema)....
ich habe eine Klasse "Punkt"
class Punkt
{
public :
int x, y ;
(.......)
}
Nun habe ich eine Funktion, der ich per Referenz 1 Punkt-Objekt Übergebe.
Ich möchte halt, das die x,y Werte des Objekts in der Funktion geändert werden:
void foo(Punkt *EinPunkt)
{
EinPunkt->x += 10 ;
EinPunkt->y += 20 ;
}
void main()
{
Punkt aPoint(50, 50) ; // initialisiert den Punkt mit den x/y Werten (50, 50)
foo(&aPoint) ;
cout << aPoint.x << ", " << aPoint.y << endl ;
}
Als Ausgabe erhalte ich aber trotzdem nur : 50, 50
die Punk-Objekt-Werte wurden also nicht geändert.
Meine Frage : Was mache ich falsch, schliesslich ändere ich doch die Werte der Objekte,
auf der die Zeiger Zeigen, oder nicht :confused: ???
Neugierige Grüsse
DanDanger