Создасть класс TFigure с виртуальной функцией площадь, на его основе создать прямоугольник, круг, шестиугольник. А на их основе создать Паралелепипед, шар, и 6-угольную призму. Определить функцию нахождения площадей этих фигур.
Плиззз помогите!
Type
TFigure = object
constructor init;
function s: real; virtual;
end;
{ и определяешь всех потомков: }
TRectangle = object(TFigure)
_a, _b: real;
constructor init(a, b: real);
function s: real; virtual;
end;
{ и так далее }
Constructor TFigure.Init;
Begin { только для корректной инициализации VMT } End;
Function TFigure.s: Real;
Begin s := 0; End; { Абстрактная функция }
Constructor TRectangle.Init(a, b: Real);
Begin
Inherited Init; { инициализация предка }
_a := a; _b := b;
End;
Function TRectangle.s: Real;
Begin s := _a*_b End;
{ Теперь если сделать так... }
Function Get_S(Var Obj: TFigure): Real;
Begin
Get_S := Obj.s;
End;
Var
myObj: TRectangle;
Begin
myObj.Init(2, 3); { <--- Исправлено }
Writeln(Get_S(myObj));
End.