Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Реализация класса Complex на Obj Pascal

3.3K
22 марта 2010 года
eugrita
24 / / 26.02.2006
Делаю класс комплексн чисел на Delphi . Вот заготовка
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;
то программа валится, полагаю из-за отсутствия выделения памяти.
Как правильно сделать?
6
22 марта 2010 года
George
4.1K / / 05.01.2007
во первых прочесть правила и оформить код. читать же невозможно.
303
22 марта 2010 года
makbeth
1.0K / / 25.11.2004
...кроме того, добавлю, что, прежде чем лезть в такие высокие материи, как реализация комплексных чисел, следует все таки разобраться насчет каши в голове по поводу классов (class), объектов (object) и записей (record). У меня такое чувство, что твой преподаватель, усердно напичкав вас знаниями о паскале на основе Borland Pascal 7.0, допустил вас к Delphi, сказав при этом, что это абсолютно то же самое...
Да... и твой код очень и очень печален...
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог