Lab_8_2

1. Dla zadania obliczenia pierwiastków równania kwadratowego 0x01 graphic
stworzyć klasę CMyexcept, która by obsługiwała wszystkie możliwe sytuacji konfliktowe. Użyć obiekty tej klasy jako typ wyjątku przy powstaniu konfliktowej sytuacji.

2. Klasa bazowa

class MY_COLOR_REF

{

short bRed;

short bGreen;

short bBlue;

public:

MY_COLOR_REF() { bRed = bGreen = bBlue = 0; }

MY_COLOR_REF(short red, short green, short blue) { bRed = red; bGreen = green; bBlue = blue; }

MY_COLOR_REF(const MY_COLOR_REF &col) { bRed = col.bRed; bGreen = col.bGreen; bBlue = col.bBlue; }

};

definiuje kolor linii.

Klasa bazowa

class my_coord

{

double *ptr;

public:

my_coord() : ptr(0) {}

my_coord(double x, double y);

~my_coord() { delete [] ptr; }

};

reprezentuje punkt na płaszczyźnie ze współrzędnymi ptr[0] = x, ptr[1] = y.

Stworzyć klasę pochodną

class my_line : public MY_COLOR_REF, public my_coord

{

protected:

my_coord p_coord[2];

MY_COLOR_REF colorref;

int thickness;

public:

my_line(my_coord begin, my_coord end, MY_COLOR_REF col, int thick);

void move_to(my_coord &begin) { p_coord[0] = begin;} //ustawiamy pióro na //początek

void line_to(my_coord &end); //wyprowadzamy prostą

};

void my_line::line_to(my_coord &end)

{

p_coord[1] = end;

cout << p_coord[0] << " " << p_coord[1] << " " << colorref << " thickness: "<< thikcness << endl;

}

ta klasa reprezentuje odcinek prostej, początek którego znajduje się w punkcie begin (p_coord[0]), a koniec - w punkcie end (p_coord[1]). Zmienna colorref reprezentuje kolor, a thickness - grubość prostej.

Uzupełnić te klasy tak, żeby fragment kodu

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

{

MY_COLOR_REF my_col(120, 120, 110);

my_line *p_line = NULL;

my_coord tab[] = { my_coord(0, 0), my_coord(1, 1)};

p_line = new my_line(tab[0], tab[1], my_col, 2);

p_line->move_to(tab[0]);

p_line->line_to(tab[1]);

delete p_line;

system("pause");

return 0;

}

działał poprawnie.