Lab 4 (2)


C++

Lab_4

Tablicy obiektów

  1. Stworzyć nowy projekt. Dodać do projektu plik incl.h, w którym umieścić deklaracje klasy NODE_COORD:

class NODE_COORD

{

double *pcoord; //pcoord[0] - x, pcoord[1] - y

public:

NODE_COORD() : pcoord(NULL) {} //konstruktor domyślny

NODE_COORD(double x, double y); //konstruktor sparametryzowany

~NODE_COORD(); //destruktor

void disp(); //wyświetla na monitorze x, y

private:

void crash(); //obsługuje błąd alokowania pamięci

};

class NODE_COORD

{

double *pcoord; //pcoord[0] - x, pcoord[1] - y

public:

NODE_COORD() : pcoord(NULL) {cout << "konstruktor domysl: NODE_COORD\n";}

NODE_COORD(double x, double y); //konstruktor sparametryzowany

~NODE_COORD(); //destruktor

void set(double x, double y); //ustala współrzędne x, y po inicjowaniu

void disp(); //wyświetla na monitorze x, y

private:

void crash(); //obsługuje błąd alokowania pamięci

};

Konstruktorzy klas wyprowadzają na monitor komunikaty o działalności konstruktora, a destruktor - destruktora.

Funkcja main wykonuje testowanie obiektów klasy:

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

{

const double math_pi = 3.141592;

NODE_COORD tb[3] = { NODE_COORD(0, 0), NODE_COORD(1, 0), NODE_COORD(0, 1) };

for(size_t i=0; i<3; ++i)

{

//wyświetlić każdy element tablicy na monitorze

}

NODE_COORD * ptr = NULL, * tmp_ptr = NULL;

//zaalokować dynamicznie tablicę typu NODE_COORD o 10 elementów. Wskaźnik za //pomocą operatora new

//ptr dostaje adres tablicy

tmp_ptr=ptr;

for(size_t i=0; i<10; ++i)

{

//policzyć współrzędne x, y, leżące na okręgu o promieni r0

//posługując wskaźnikiem tmp_ptr przypisać współrzędne x, y każdemu

//elementowi tablicy. Każdy element tablicy przedstawia punkt, leżący na

//okręgu o promieni r0

}

fun(ptr); //stworzyć funkcje fun, która wydrukuje na monitorze współrzędne dla

//wszystkich punktów, leżących na okręgu

//zwolnić pamięć dla tablicy obiektów

//zaalokować pamięć za pomocą funkcji malloc dla 10 elementów tablicy

ptr = (NODE_COORD *)malloc(10*sizeof(NODE_COORD));

if(!ptr)

crash_memory(); //funkcja obsługi błędu w przypadku niepowodzenia

for(size_t it = 0; it<10; ++it)

{

//policzyć współrzędne x, y, leżące na okręgu o promieni r0

//posługując wskaźnikiem tmp_ptr przypisać współrzędne x, y każdemu

//elementowi tablicy. Każdy element tablicy przedstawia punkt, leżący na

//okręgu o promieni r0

}

fun(ptr);

//co tu trzeba zrobić?

system("pause");

return 0;

}

Policzyć, ile razy wywołują się konstruktorzy i destruktory. Uzupełnić funkcje main odpowiednio komentarzam.



Wyszukiwarka

Podobne podstrony:
spis lab I sem 2010
III WWL DIAGN LAB CHORÓB NEREK i DRÓG MOCZ
Diagnostyka lab wod elektrolit
ZW LAB USTAWY, OCHRONA
LAB PROCEDURY I FUNKCJE
sprzet lab profilografy
sprzet lab mikromanometry
Mechanika Plynow Lab, Sitka Pro Nieznany
Lab 02 2011 2012
PO lab 5 id 364195 Nieznany
lab pkm 4
MSIB Instrukcja do Cw Lab krystalizacja
lab [5] id 258102 Nieznany
lab 8 9 1
lab 3 2 9
IE RS lab 11 solutions
5 MDE lab nr 5 ogniwa fotogalwaniczne
lab pkm 5

więcej podobnych podstron