Lab_8_2
1. Dla zadania obliczenia pierwiastków równania kwadratowego
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.