5275


C++

Lab_2

  1. Stworzyć klasę my_vol, celem którego jest obliczenie objętości prostopadłościanu V = abc, gdzie a, b, c - rozmiary stron. Wartości a, b, c (typu double, składowe prywatne klasy) muszą być przekazane konstruktorowi tej klasy. Dane wprowadzić z monitora. Klasa musi zawierać:

Funkcje obliczenia objętości V .

Funkcje wyświetlania wyniku na monitor.

  1. Zapoznać się z działaniem przykładu wzorcowego W1_1_Lab (http://torus.uck.pk.edu.pl\~fialko). Zmienić program tak, żeby maksymalną ilość elementów w steku przekazywać konstruktorowi klasy. W konstruktorze klasy użyć dynamiczną alokacje pamięci. Wprowadzić destruktor, który zwalnia pamięć.

  2. Stworzyć nowy projekt i wkopiować zadanie:

#include "windows.h"

#include <iostream>

using namespace std;

class my_timer

{

DWORD t_start; //czas tworzenia obiektu

double elapsed; //czas trwania obiektu

static int count; //licznik timer'ow

int id; //identyficator timera

public:

my_timer();

~my_timer();

};

my_timer::my_timer()

{

//pobrać czas CPU (GetTickCount())

// inkrementujemy count i przypisujemy do id

//wyprowadzamy na monitor „obiekt „ id „ is created”

}

my_timer::~my_timer()

{

//zawieszamy wykonanie o 1000 ms

//pobieramy znów czas CPU I liczymy trwałość istnienia obiektu

//wyprowadzamy na monitor „obiekt „ id „czas istnienia” elapsed „ ms” „

//is destructed”

//zawieszamy wykonanie programu do nacinicia na dowolną kławiszę

}

class my_cl

{

my_timer tt;

char obj_name[256];

public:

my_cl(char *str){

cout << "konstructor my_cl: " << str << "\n";

strcpy_s(obj_name, sizeof(obj_name), str);

}

~my_cl() {

cout << "destructor my_cl: " << obj_name << "\n";

system("pause");

}

};

int my_timer::count = 0;

my_cl ob_glob("glob");

int _tmain(int argc, _TCHAR* argv[])

{

int i, n = 3;

for(i=0; i<n; ++i)

{

my_cl ob_loc("loc");

static my_cl ob_loc_static("loc static");

}

return 0;

}

Dla podanego kodu napisać obsługę klasy timer. Jako przykład pobrać W1_2.pdf (przykłady do wykładów). Wyjaśnić, w jakiej kolejności są wywołane konstruktory oraz destruktory klas timer oraz my_cl dla obiektu my_cl globalnego, my_cl lokalnego oraz my_cl lokalnego static.



Wyszukiwarka