ВУЗ:
Составители:
Рубрика:
113
class figure {
protected:
double x, y;
virtual double area (){return 0;} // Площадь по умолчанию.
};
class rectangle: public figure {
private:
double height, width;
. . .
public:
rectangle (double h, double w){height=h; width=w;}
double area () {return height * width;}
. . .
};
class circle: public figure {
private:
double radius;
. . .
public:
circle (double r){radius=r;}
double area () {
return M_PI*radius*radius;}
. . .
};
Код пользователя может выглядеть так:
const N = 30;
figure *p[N];
double tot_area = 0;
. . . // Здесь устанавливаются указатели p[i], например,
. . . // rectangle r(3, 5); p[0]=&r; circle c(8); p[1]=&c; и т.д.
for (int i = 0; i < N; i ++) tot_area + = p[i]->area (); // Код пользовате-
ля.
Главное преимущество состоит в том, что код пользователя не
нуждается в изменении, даже если к системе фигур добавляются новые.
Рассмотрим еще пример для расчета заработной платы с классом
Employee.
Страницы
- « первая
- ‹ предыдущая
- …
- 109
- 110
- 111
- 112
- 113
- …
- следующая ›
- последняя »
