Hodnocení DU Lineární seznam 2





- hlavičkový soubor (obsahující prototypy - jaké je rozhraní – netvoří kód) a zdrojový soubor (konkrétní realizace - místo v paměti) by měly obsahovat vše co ke třídě patří - nepsat metody do "main"

- prototyp třídy Seznam:: není uvnitř třídy psát, je zřejmé z kontextu – vše co je „uvnitř závorek“ class Seznam { ... }; patří do (prostoru) třídy

- opravovat staré chyby - doplnit kopykonstruktor - je důležitý i když se "nepoužívá" - je volán implicitně překladačem - jinak vytvořen mělký -> chyba při odalokování

- Inv mělo být vytvořeno přesně podle zadání tak aby fungoval prezentovaný kód
S1 = Inv(S2); S2 se nezmění
S3 = S2.Inv(); S2 se změní, S1, S2 i S3 budou tedy mít stejné hodnoty
definice přátelské funkce a metody mohly vypadat například takhle:
friend Trida Inv(const Trida& b) {Trida pom .... return pom;}
Trida & Inv(void ) { return *this;}

- parametr funkce a metody by měl být vždy reference, návratová hodnota pokud to jde reference jinak hodnota

- vracet ukazatel není vhodné - musí tento prvek "ručně" odalokovat uživatel. "ukazatele" se neodalokují při výjimkách

- nezapomínat, že jeden objekt se (u metod) předá pomocí this (metody které nepoužívají prvek předávaný pomocí this by tedy měly být realizovány jinak – externí C, friend, static ...)

- logické operátory by měly vracet bool ne int ...

- pokud jsou předepsána jména (proměnné, funkce, metody), měly by se v projektu objevit

- NaPrvni, NaDalsi ... by mohly vracet aktuální ukazatel nebo prvek, je potřeba zaručit aby se nedal prvek měnit "zvenčí" (tj. vrací se const * const, nebo kopie prvku)

- promyslet návratové hodnoty pro operator ! ( napíši-li Seznam, pak pokud existuje, mělo by to být true, a tedy !Seznam by mělo pro existující seznam vracet false)







Poslední úpravy 2009-12-21