Hallo!
Ich habe folgendes Problem:
Ich habe mir eine Klasse geschrieben(ohne große Funktionalität, nur zum testen), in der ich auch Methoden habe, die auf ein weiteres Objekt dieser Klasse zeigen sollen. Das Zuweisen klappt auch soweit ganz gut.
Nur wenn ich jetzt nachdem ich auf das Objekt zeige, dessen Werte ändere, wird das bei der Ausgabe nicht berücksichtigt? Was mache ich falsch? Hier erstmal der Code:
Code:
#include <cstdlib>
#include <iostream>
using namespace std;
class box
{
int x,y;
box* Zeiger;
public:
box();
void Set(int iX,int iY){x=iX;y=iY;}
int Get(){return x*y;}
void ZeigeAuf(box Box){Zeiger=&Box;}
box HoleZeiger(){return *Zeiger;}
friend box operator + (box a, box b){box temp; temp.x=a.x; temp.y=a.y+b.y; return temp;}
~box();
};
box::box()
{
Zeiger=NULL;
x=5;
y=5;
}
box::~box()
{}
int main()
{
box test,add;
test.Set(10,20);
add.Set(2,5);
test.ZeigeAuf(add);
box sum=test.HoleZeiger();
add.Set(2,2);
cout<<"test ist "<<test.Get()<<" add ist "<<add.Get()<<endl;
cout<<"Summe ist "<<sum.Get()<<" Test ist "<<test.Get()<<endl;
system("PAUSE");
return 0;
}
Die Ausgabe ist jetzt allerdings:
test ist 200 add ist 4
Summe ist 10, test ist 200
Eigentlich müssten doch jetzt die Werte an der Adresse auf die der Zeiger zeigt, auch geändert sein, oder verdaddel ich da grad was?
Ich benutze Dev C++ mit integriertem GCC Compiler.
Vielen Dank schonmal im Voraus,
Gruß
Zuletzt bearbeitet: