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.