mogłby mi ktos wytlumaczyc co oznaczaje te operatory razem polaczone?
void funkcja ( Klasa*& dana){}
mogłby mi ktos wytlumaczyc co oznaczaje te operatory razem polaczone?
void funkcja ( Klasa*& dana){}
referencja na wskaźnik. zapisz sobie tak, to lepiej widać:
Klasa* &dana
pozwala z wewnątrz funkcji zmienić wartość wskaźnika, a nie tylko obiektu.
Nie wiem czy dobrze rozumiem, ale :
void funkcja( Klasa * &zmienna){
zmienna->cos();
zmienna = 123; // tutaj wykorzystuje sie referencje na wskaznik? zmienna jak i klasa wskazuje na obszar w pamieci 123? ( o ile taki zapis jest poprawny przy identyfikacji pamieci);
}
Klasa klasa;
funckja(&klasa);
Dzieki referencji do wskaźnika możesz zrobić coś takiego:
class Foo
{
public:
int x;
};
void initObject(Foo*& f)
{
f = new Foo;
f->x = 10;
}
int _tmain(int argc, _TCHAR* argv[])
{
Foo* pFoo = nullptr;
initObject(pFoo);
cout<<pFoo->x;
return 0;
}
Czyli wewnątrz funkcji możesz zainicjować wskaźnik, który został jej przekazany jako parametr. W podobny sposób można to zrobić ze wskaźnikiem do wskaźnika
void initObject2(Foo** f)
{
*f = new Foo;
(*f)->x = 12;
}
i w main()
initObject(&f);