Pole jako třída + dokumentace projektu



Pokračujte v tvoření třídy 2D pole. Zdrojové texty okomentujte.

  1. Vytvořte dvě privátní statické proměnné třídy: iLiving a iTotal. iLiving bude počítat aktuální počet prvků třídy a iTotal bude počítat celkový počet prvků třídy vytvořených od začátku programu. Počty objektů se řídí počtem volaných konstruktorů a destruktorů. Proměnné nadefinujte ve zdrojovém souboru včetně inicializace. Napište dokumentaci.

  2. Vytvořte veřejné statické metody třídy Living a Total, které budou vracet hodnoty proměnných iLiving a iTotal. Vytiskněte počet aktuálních a celkově vzniklých objektů třídy na začátku a na konci funkce main. Funkci main upravte tak, aby počet aktuálních prvků byl na konci vždy nula (uvnitř funkce main bude nový blok, ve kterém budou definovány proměnné třídy). Napište dokumentaci.

  3. Předělejte proměnnou pro data pole na dynamická data. Napište dvě privátní funkce pro alokaci a dealokaci 2D dynamického pole. Tyto funkce budou s funkčním voláním (= nebudou inline, = těla budou ve zdrojovém souboru). Napište dokumentaci.

  4. Do projektu vložte knihovnu check na kontrolu paměti.

  5. Napište implicitní konstruktor, který vytvoří prázdný objekt (bez alokovaných dat). Implicitní konstruktor bude inline. Zároveň napište destruktor. Destruktor bude mít funkční volání. Vytvořte proměnnou třídy pomocí implicitního konstruktoru. Přeložte a ověřte, že je konstruktor a destruktor správně volán (pomocí check a proměnných iLiving a iTotal). Napište dokumentaci.

  6. Vytvořte ukazatel na proměnnou třídy pole. Vytvořte dynamickou proměnnou pomocí new a implicitního konstruktoru – uložte ji do daného ukazatele. Přeložte a ověřte, že je konstruktor a destruktor správně volán (pomocí check a proměnných iLiving a iTotal). Napište dokumentaci.

  7. Vytvořte konverzní konstruktor s jedním parametrem typu int, který vytvoří čtvercovou matici o rozměru určeném parametrem. Pole dat bude vynulováno. Vytvořte proměnnou třídy pomocí tohoto konstruktoru. Přeložte a ověřte, že je konstruktor a destruktor správně volán (pomocí check a proměnných iLiving a iTotal). Napište dokumentaci.

  8. Vytvořte ukazatel na proměnnou třídy pole. Vytvořte dynamickou proměnnou pomocí new a konverzního konstruktoru z int – uložte ji do daného ukazatele. Přeložte a ověřte, že je konstruktor a destruktor správně volán (pomocí check a proměnných iLiving a iTotal). Napište dokumentaci.

  9. Vytvořte kopykonstruktor konstruktor s jedním parametrem typu reference na třídu, který vytvoří kopii proměnné z paramtru. Vytvořte proměnnou třídy pomocí tohoto konstruktoru. Přeložte a ověřte, že je konstruktor a destruktor správně volán (pomocí check a proměnných iLiving a iTotal). Napište dokumentaci.

  10. Vytvořte ukazatel na proměnnou třídy pole. Vytvořte dynamickou proměnnou pomocí new a kopy konstruktoru – uložte ji do daného ukazatele. Přeložte a ověřte, že je konstruktor a destruktor správně volán (pomocí check a proměnných iLiving a iTotal). Napište dokumentaci.

  11. Vytvořte konstruktor používaný pro volání se dvěma nebo třemi parametry. První dva parametry budou typu int, a určí rozměr matice. Třetí parametr (implicitní) určí inicializační hodnotu dat v poli. Nebude-li třetí parametr při „volání“ uveden, pole vynulujte. Vytvořte proměnnou třídy pomocí tohoto konstruktoru. Přeložte a ověřte, že je konstruktor a destruktor správně volán (pomocí check a proměnných iLiving a iTotal). Napište dokumentaci.

  12. Vytvořte ukazatel na proměnnou třídy pole. Vytvořte dynamickou proměnnou pomocí new a konstruktoru se třemi parametry – uložte ji do daného ukazatele. Přeložte a ověřte, že je konstruktor a destruktor správně volán (pomocí check a proměnných iLiving a iTotal). Napište dokumentaci.













Poslední úpravy 2014-11-12