Witam! Nie wiem czy dobrze myślę, bo ostatnio mnie coś natkneło, żeby wyprobować coś takiego:
class X{
public:
int a;
}
void zmien(X * x)
{
x = new X();
x.a = 5;
}
void zmien(X & x)
{
x = X();
x.a = 5;
}
void main()
{
X * o = new X();
X v;
o->a = 10;
zmien(o);
cout<<o->a;
v.a = 10;
zmien(v);
cout<<endl<<v.a);
}
Dlaczego jeżeli przekazuje parametr przez wskaznik, a nastepnie tworze dla tej zmiennej nowy obiekt, to tracę referencje? Jest tak dlatego, że przekazując przez wskaznik przekazuje tlko adres, a po utworzeniu nowego obiektu przez new obiekt jest tworzony na innym adresie? cout<<o->a; wypisuje 10, a myslałem, ze bedzie jak dla referencji, gdzie dla v.a wypisuje 5... Może ktoś to jakoś fajnie wytlumaczyć ?