Составители:
Рубрика:
66
while(w.Control()!=27); //пока не нажата клавиша ESC, просматриваем текст в окне
}
4.4. Виртуальные классы
В некоторых случаях дублирование компонент непрямого базового класса
необходимо устранить. Например, перед нами стоит задача определить классы,
описывающие поведение шахматных фигур.
//Листинг 27. Определение классов «шахматные фигуры»
class Figure //класс «фигура»
{ protected:
int hor; //позиция фигуры по горизонтали
char vert; //позиция фигуры по вертикали
int color; //цвет фигуры
public:
Figure(char x, int y, int z) //конструктор
: vert(x), hor(y), color(z)
{}
};
class Castle : public Figure //класс ладья
{ public:
Сastle(char x, int y, int z):
Figure (x, y, z) //конструктор
{}
int Move(char x, int y) //функция, реализующая ход ладьи на поле [x y ]
{
if ( ((x == vert)
&& (y != hor))
|| ((x != vert)
&& (y == hor)))
{
hor = y;
vert = x;
return 1;
}
return 0;
}
};
class Bishop : public Figure //класс слон
{ public:
Bishop(char x, int y, int z):
Figure (x, y, z) //конструктор
{}
while(w.Control()!=27); //пока не нажата клавиша ESC, просматриваем текст в окне } 4.4. Виртуальные классы В некоторых случаях дублирование компонент непрямого базового класса необходимо устранить. Например, перед нами стоит задача определить классы, описывающие поведение шахматных фигур. //Листинг 27. Определение классов «шахматные фигуры» class Figure //класс «фигура» { protected: int hor; //позиция фигуры по горизонтали char vert; //позиция фигуры по вертикали int color; //цвет фигуры public: Figure(char x, int y, int z) //конструктор : vert(x), hor(y), color(z) {} }; class Castle : public Figure //класс ладья { public: Сastle(char x, int y, int z): Figure (x, y, z) //конструктор {} int Move(char x, int y) //функция, реализующая ход ладьи на поле [x y ] { if ( ((x == vert) && (y != hor)) || ((x != vert) && (y == hor))) { hor = y; vert = x; return 1; } return 0; } }; class Bishop : public Figure //класс слон { public: Bishop(char x, int y, int z): Figure (x, y, z) //конструктор {} 66
Страницы
- « первая
- ‹ предыдущая
- …
- 64
- 65
- 66
- 67
- 68
- …
- следующая ›
- последняя »