Dobrý podvečer,
často se setkávám s tím, že potřebuji předat do nějaké třídy "odkaz" na třídu další. Například do seznamu všech postaviček na mapě přidat jednotlivé postavičky.
Ze seznamu bych chtěl umět jednotlivé postavičky upravovat a to tak, aby se změna projevila u dané postavičky i mimo seznam. Naopak změnění postavičky musí reflektovat postavička v seznamu.
Chápu že mám v zásadě asi dvě možnosti. Předání pomocí reference nebo ukazatele. Bohužel v těchto pojmech trochu plavu... Nevím kdy použít kterou. Obecně se snažím předávat vše pomocí hodnoty ( základní typy jako int) nebo referencí (třídy). Ukazatele vesměs nepoužívám, protože to znamená další práci se správou paměti navíc.
V seznamu postaviček mám vektor, list atd. Občas je potřeba data zase ze seznamu vytáhnout. Vytahovat referenci není asi nejchytřejší nápad (při změně vektoru, listu budou neplatné), takže se většinou uchyluji k použití ukazatele. Podobný postup se mi ale vůbec nezdá. Člověk používá tečkovou notaci:
Seznam.metoda()
a najednou musí používat šipku:
Seznam.dejPostavicku()->zmenJmeno("Pepa")
Konečně tedy položím otázku. Je můj postup (vracení referencí, pokud to jde, jinak pomocí ukazatele) ten správný způsob? Není nějaký lepší? V jakých případech se vyplatí více použít reference a kdy ukazatel? Děkuji za odpovědi.