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