Реализация класса Complex на Obj Pascal
unit Complex;
interface
Type cmplx=record
re,im: Real;
end;
Type TComplex=class
private
R,fi: real;
public
z: cmplx;
function AddC(z1,z2:Cmplx): Cmplx; //вставка в конец
constructor Create(xx:real;yy:real);
end;
cmp=^TComplex;
implementation
function TComplex.AddC(z1,z2:Cmplx): Cmplx; //вставка в конец
begin
RESULT.re:=z1.re+z2.re;
RESULT.im:=z1.im+z2.im;
end;
constructor TComplex.Create(xx:real;yy:real);
begin
New(cmp);
inherited create;
// cmp^.z.x :=xx; cmp^.z.y :=yy; {так не компилится}
self.z.re := xx; {так компилится, но валится при выполнении}
end;
end.
---------------------------------
Проблема с конструктором.
Полагаю при создании класса надо выделить память (не выдел автоматически).
Для этого ввел указатель на класс cmp и вызываю New(cmp)
Проблема, что потом не могу через указатель обратиться к членам
данных re, im (чтобы присвоить им значения) - не пропускает компилятор
Если же отказаться вовсе от cmp а использовать прямое назначение
self.z.re := xx; self.z.im := yy;
то программа валится, полагаю из-за отсутствия выделения памяти.
Как правильно сделать?
во первых прочесть правила и оформить код. читать же невозможно.
Да... и твой код очень и очень печален...