Составители:
Рубрика:
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
- …
- следующая ›
- последняя »
