Napište třídu T (třída je stejná jako v zadání, které jste si psali v DU1) tak, aby fungoval následující kód.
Pokud ve verzi zadání nemáte pro daný stav (počet parametrů, ...) patřičné zadání, vymyslete co by mohl příkaz dělat a doplňte do zadání.
Všechny konstruktory a destruktor vypíší při běhu programu text (s odřádkováním) o tom jaký konstruktor/destruktor byl právě vykonáván.

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



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



{
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

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



}

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