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í.