Hodnocení DU 2D pole

Chyby na které si dávat pozor a doporučení:

- datové členy se doporučuje zařadit do private sekce – je to vhodná ochrana dat před nastavením "špatné" hodnoty (zapisovaná data je možné kontrolovat, protože je nutné je zadat pomocí metod), možnost změny implemntace (pokud se k proměnným třídy (datům) nepřistupuje přímo, ale přes metody, je možné data změnit (počet, názvy, typy …))

- pokud má třída dynamická data, musí se ošetřit aby je (nechráněně) nesdílelo více objektů - problém kopykonstruktoru a =. Pokud více objetků vlastní ukazatel na stejná data (k čemuž dojde při prostém kopírování paměti), potom je riziko, že je některý uvolní a ostatní nebudou mít platná data.

- práce s pamětí - dvojice new / delete a new [ ] / delete[ ]

- psaní class a struct u názvu typů není v C++ povinné

- posílejte pouze cpp a h,

- v rámci programátorské "čistoty" je dobré psát void

- hlavičková a zdrojová část třídy mají mít stejné jméno, soubor pro testování zvlášť

- nový typ se chová stejně jako standardní typy, pokud si nejste jisti, zkuste analogii s int

- rozsáhlejší metody - do zdrojů - nejsou inline

- hlavičkové soubrory, jejichž proměnné se v hlavičce třídy používají načtěte v hlavičce třídy

- pokud jsou těla v hlavičce ale mimo třídu, měly by v těle být označeny inline - jinak tvoří kód - duplicita při naincludování do více souborů

- pro počet bitů a bytů pro daný typ používat předdefinované proměnné

- funkci init by neměl volat uživatel (private) protože je většinou koncipována pouze pro vytvoření a nestará se o odstranění stávajícího pole





Výsledky:

83654 - 90%

- dodělat kopykonstruktor

- komentáře realizovat pomocí komentářů jazyka



15217 -

- odevzdána minulá úloha



41753 - 100%

- není nutné nulovat celé pole po bitu



43268 - 95%

- Nepoužívat NULL, když chcete použít hodnotu 0

- dealokace zbytečně složitá

- používat znakové konstanty ne ASCII hodntoty



74544 - 100%

- těla medot do zdrojového souboru



74569 - 90%

- ošetřit hlavičku

- zdrojový text ke třídě a do něj metody

- data v privátní sekci

- zkusit všechna volání konstruktorů



74591 - 100%

- omylem odevzdán i BSAS

- typedef už není nutný



74593 - 90%

- ošetření hlavičky

- v main vyzkoušet všechny konstruktory



74614 - 95%

- ošetřit hlavičku



74616 - 90%

- ošetření hlavičky

- seznam parametrů (init) nemůže začínat čárkou

- metody v hlavičce inline



77661 - 65%

- proměnná v hlavičce metody překryje název členských dat

- konstanta 1 by měla být unsigned int

- pouze dva konstruktory



77673 - 80%

- v hlavičce těla inline

- ošetřit hlavičku

- ukázat volání v main



77696 - 95%

77697 - 100%

- mask lépe unsigned char



77705 - 90%

- pro mocninu lepší použít bitový posun

- kpykonstruktor nekopíruje pole - pouze namíří ukazatel

na stejná data (chyba při odalokování), původní alokace

se tím "ztratí"



80563 - 75%

- program pro demonstraci činnosti zvlášť

- proměnné typu třída mohou mít různá jména

- hodnota a binar asi ne členská data

- co bit to hodnota pole

- pro konec řetězce ne NULL ale ´\0´

- v kopykonstruktoru nutno přepsat délku



83600 - 100%

- pocHodnota by se asi měla předávat jako parametr a ne realizována jako členská data - z hlediska další činnosti zbytečná proměnná





Poslední úpravy 2006-11-25