Лень писать примитивные методы.
Вот тебе сами классы, а методы допишешь сам.
Зачем нужен для данного класса деструктор - я не знаю

Тут то дефолтный конструктор нафиг не нужен.
Базовый класс:
Код:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 | unit ComplexNumber;
interface
type
TComplexNumber = class
private
FRe : Integer ;
FIm : Integer ;
public
constructor Create; overload;
constructor Create(ARe, AIm : Integer ); overload;
constructor Copy(ANumber : ComplexNumber);
procedure Add(ANumber : TComplexNumber);
procedure Dex(ANumber : TComplexNumber);
procedure Mult(ANumber : TComplexNumber); overload;
procedure Mult(ANumber : Integer ); overload;
procedure Div (ANumber : TComplexNumber); overload;
procedure Div (ANumber : Integer ); overload;
property Re : Integer read FRe write FRe;
property Im : Integer read FIm write FIm;
end ;
implementation
constructor TComplexNumber . Create;
begin
inherited ;
FRe := 0 ;
FIm := 0 ;
end ;
constructor TComplexNumber . Create(ARe, AIm : Integer );
begin
inherited Create;
FRe := ARe;
FIm := AIm;
end ;
constructor TComplexNumber . Copy(ANumber : ComplexNumber);
begin
inherited Create;
FRe := ANumber . FRe;
FIm := ANumber . FIm;
end ;
end ;
|
Потомок:
Код:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | unit AdvComplexNumber;
interface
uses ComplexNumber;
type
TAdvComplexNumber = class (TComplexNumber)
public
function Abs : Double ;
function Arg : Double ;
procedure Power(AValue : Integer );
end ;
implementation
funcrtion TAdvComplexNumber . Abs : Double ;
begin
Result := Sqrt(Sqr(Re) + Sqr(Im));
end ;
funcrtion TAdvComplexNumber . Arg : Double ;
begin
Result := Arctan(Re/Im);
end ;
procedure TAdvComplexNumber . Power(AValue : Integer );
begin
end ;
end ;
|
С остальным может еще кто поможет...