Pokračování minulé DU.
Rozšiřte minulý DU tak, aby prováděl následující kód.
Zároveň implementujte statické proměnné (iAktualni, iCelkem) a statické metody (Aktualni, Celkem) pro počítátní prvků. Aktuální bude obsahovat celkový počet proměnných dané třídy existujících v daném okamžiku. Celkem bude obsahovat hodnotu dosud vzniklých objektů daného typu. Do proměnné přidejte členskou proměnnou iIndex, ve které bude hodnota odpovídající pořadí vzniku daného objektu.

Rozdělte třídu do hlavičkového a zdrojového souboru. Na vytvořených metodách vyzkoušejte různé způsoby umístění těl:
- velice krátké metody – nechte těla v definici třídy (v hlavičkovém souboru)
- delší (ale stále ještě poměrně krátké) metody – ve třídě deklarujte hlavičku metody s inline, tělo uveďte za třídu (vše v hlavičkovém sobuoru)
- složitější metody deklarujte uvnitř třídy a definujte ve zdrojovém (.cpp) souboru







Používejte doporučení z tutoriálů.



Vzorový kód (T zastupuje vaši třídu):

{

Zde vytiskněte aktuální a celkový počet proměnných typu T pomocí statických metod.

{
T aa,hh,ii;
T bb(1);
T cc(1,2);
T dd(1,2,3);
T ee("..."); // za ... doplňte řetězec pro vložení vaší proměnné, tak jak ho máte v zadání.
T ff(dd);
T gg = ff;
T jj[10];

T *pa = &aa;
T *pb = new T;
T *pc = new T(2,3);
T *pd = new T(gg);
T *pe = new T[20];

aa.SetX(12.3); //za X si můžete doplnit název vyhovující vaší třídě
aa.SetY(2.3); //za Y si můžete doplnit název vyhovující vaší třídě
hh.SetXY(1.2,3.4); // za XY si můžete doplnit název vyhovující vaší třídě, popřípadě doplnit více argumentů
ii.Set(hh); // použijte referenci

// nastavte proměnnou odkazovanou pb na hodnoty proměnné dd

cout << "Hodnota je: " << hh.GetX() .... << endl; // postupně vytiskněte všechny složky z vaší proměnné

// stejným způsobem vytiskněte proměnnou odkazovanou pd

// stejným způsobem vytiskněte třetí proměnnou pole odkazovaného pe

// navrhněte operace pro Váš datový typ (důležitá je definice (hlavičky) operace a počet parametrů. Vlastní čiinnost operátoru si vymyslete sami vhodnou pro Váš typ – činnost popište v komentářích)

aa = -bb + +cc;

gg = ++dd;
jj[5] = dd++;
if (gg == jj[5])
cout << “ stejne hodnoty “ << endl;
else
cout << “ různé hodnoty “ << endl;


if (aa > ee)
aa += cc;


if (!aa) // výsledek bude true, je-li aa „použitelné“. „Použitelné“ zde definujeme jako že má obě složky různé od nuly.
++aa; // stejnou podmínku napište níže pro proměnnou odkazovanou pomocí pc
// zde bude předchozí if ale místo aa použijte pc (zkuste zjednodušené i plné funkční volání).



double nasob = 2.5;
jj[9] = *pc * nasob;
jj[8] = nasob * *pc; // použijte friend vlastnosti




// sem doplňte kód pro korektní hospodaření s pamětí

}

Zde vytiskněte aktuální a celkový počet proměnných typu T pomocí statických metod.

}





Odevzdejte v zip souboru: zdrojové a hlavičkové soubory *.c, *.h. Aktuální znění zadání.