Diskuze: Rozdíl v předávání objektu jako parametr funkce/metody
V předchozím kvízu, Online test znalostí C++, jsme si ověřili nabyté zkušenosti z kurzu.
Zobrazeno 4 zpráv z 4.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí C++, jsme si ověřili nabyté zkušenosti z kurzu.
U pointeru (prostřední případ) je to velmi podobné jak u referencí
(poslední případ).
Pointer narozdíl od reference zabírá místo v paměti (4 byty u 32-bit, 8
bytů u 64-bit). Reference je totiž přímý ukazatel do paměti, nahrazený
kompilátorem při kompilaci.
Pointery můžou nabývat NULL, reference ne.
Na referencích nemůžeš provádět pointerovou aritmetiku.
A samozřejmě je tam lepší podpora pro RAII.
doplnim, rozdil je hlavne v tomhle: kdyz predavas funkci pointer predavas ukazatel na misto v pameti, ktere skutecne zabira ten objekt, je to otravny, musis to soustavne dereferencovat a kdyz nahodou zapomenes tak to padne .. .takze v C++ prisly reference, dobry na tom je, ze kdyz pouzijes referenci, muzes se k tomu objektu (datovymu typu) chovat jako by tam skutecne byl a nemusis ho dereferencovat, kdyz chces nad nim neco provest ...
reference jsou tedy pohodlnejsi a vyplati se je pouzit, kde to jde
(vim o tom, ze cast veci uz rekl Filip, ale mel jsem potrebu zminit ten rozdil v praktickem pouzivani)
Zobrazeno 4 zpráv z 4.