Třída CVector – konstruktory a destruktor


Rozšiřte realizovanou třídu CVector na základě následujícího kódu o konstruktory a destruktor. Postupujte podle následujících pokynů.


Realizujte konstruktory pro následující definice proměnných (kód opět postupně přidávejte pomocí podmíněného překladu):

{ // následující kód vložte na začátek funkce main

CVector v1; // implicitní konstruktor – vynuluje všechny proměnné
CVector v7[5]; // pro pole se volají implicitní konstruktory

CVector *pv1 = new CVector; // konstruktor by se měl volat i při alokaci

// destruktor se volá při delete

#if 0

CVector v2(10); // konverzní konstruktor z int – naalokuje místo (iCapacity) podle daného parametru. iSize bude stejné. Pole nulované.

CVector v3(10,8.2); // použijte stejný konstruktor jako u konverzního pro int (v2) s použitím implicitního parametru. První parametr značí počet alokovaných prvků - všechny se naplní danou hodnotou

CVector v22(v2); // kopy konstruktor – vytvoří hlubokou kopii

CVector *pv2 = new CVector(v3); // při alokaci je možné určit typ použitého konstruktoru

CVector v4(5.1); // konverzní konstruktor z double – naalokuje místo pro jeden prvek a do něj umístí danou hodnotu.

double InitPole[6] = {1, 2, 3.4, 5.6, 45.67, 0};

CVector v5(6,20,InitPole); // konstruktor ze tří prvků: iSize, iCapacity, pole hodnot

CVector v6(“5;10 [1 2 3.4 5.6 45.67]“ ); // konverzní konstruktor z řetězce – formát jako u Print.

#endif

// zajistěte korektní manipulaci s pamětí


return 0; // po odladění této části kódu zakomentujte

// aby došlo k otestování chování v původním main

}



  1. Pokračujte v příkladu z minulého cvičení. Nejprve otestujte dodaný kód v samostatném bloku, následně i s původním main.

  2. Nejprve napište pro třídu CVector destruktor – může volat funkci Deallocate. Do destruktoru můžete vložit pro informaci tisk metodou Print a kontrolovat kolik objektů se pomocí destruktoru ruší.

  3. Napište pro třídu CVector konstruktory tak, aby šel realizovat výše uvedený kód s definicemi proměnných.
    Správnost ověřte pomocí tisku proměnných pomocí metody Print.
    Konstruktory, které nestihnete na cvičení si promyslete a doprogramujte za DU.

  4. Spusťte program včetně původního main a všimněte si, že (při správně napsaném programu) se odalokují nové proměnné v1,... pomocí destruktoru. Původní proměnné d1,... jsou odalokovány pomocí Deallocate, ale destruktor je na ně volán také.






poslední úpravy 2018-10-23