Конструктор Box3d
box3d::box3d(double x, double y, double w, double h, double d)
: rect(x,y,w,h) < Обратите внимание как конструктор box3d
вызывает конструктор rect, для дальнейшей
{ работы.
depth = d;
}
Функция vol() для box3d вычисляет занимаемый им объем, который
равен - * ht * depth. Обратите внимание на изменения функции
area() по сравнению с той, что работала у прямоугольника.
double box3d::vol()
{
v
return rect::area() * depth;
^
}
Оператор селектора
Заимствование кода является нормой для порожденных классов, поэтому и большая часть созданного программного кода будет использоваться повторно или по крайней мере будет входить в повторный цикл.
Функция area() вычисляет поверхность для box3d по формуле
- 2 x поверхность основания + 4 x поверхность стороны.
double box3d::area()
{ Функция area возвращает размер
v поверхности основания прямоугольника
return 2.0 * rect::area() +
4.0 * rect(0, 0, ht, depth).area();
^ ^
} Вызывает временную ???
функцию размера поверхности
Делает временным объект размер прямоугольника
по одной из сторон
Сейчас мы на самом деле достигли наследования текста программы!