Перегрузка операторов - Pascal
Формулировка задачи:
Всем доброго времени суток!
Видел несколько сайтов, на которых описана перегрузка операторов в Паскале на примерах. Например, здесь:
http://pas1.ru/oop/operator
Вот код оттуда же:
Пробовал скомпилировать и запустить этот код на PascalABC, Free Pascal и на всякий случай на RAD Studio, и везде не компилится, ошибку выдает на строчке, где начинается описание оператора. Вопрос: в чем прекол? Где-нибудь этот код вообще работает? Прошу помочь мне разобраться с этим.
P.S. Бочку сделал, ну и... соснул... ну вы поняли.
type TComplex = class private x,y: real; //действительная и мнимая части public constructor Create; function Modul(): real; function Argument(): real; procedure Printer(); end; constructor TComplex.Create; begin x := 0; y := 0; inherited Create; end; function TComplex.Modul(): real; begin modul := sqrt(x*x + y*y); end; function TComplex.Argument(): real; begin argument := arctan(y/x) * 180/pi; end; procedure TComplex.Printer(); begin if y >= 0 then writeln(x:3:1,'+',y:3:1,'i') else writeln(x:3:1,y:3:1,'i'); end; operator +(const a,b: TComplex)r: TComplex; begin r := TComplex.Create; r.x := a.x + b.x; r.y := a.y + b.y; end; operator -(const a,b: TComplex)r: TComplex; begin r := TComplex.Create; r.x := a.x - b.x; r.y := a.y - b.y; end; var c1, c2, c3, c4: TComplex; a, b: real; begin c1 := TComplex.Create; c2 := TComplex.Create; c3 := TComplex.Create; c4 := TComplex.Create; write('real and imag of the FIRST number: '); readln(c1.x, c1.y); write('real and imag of the SECOND number: '); readln(c2.x, c2.y); c3 := c1 + c2; c4 := c1 - c2; c3.printer(); c4.printer(); readln; end.
Решение задачи: «Перегрузка операторов»
textual
Листинг программы
{$mode objfpc}
Объяснение кода листинга программы
mode
- это ключевое слово, используемое в среде разработки Free Pascal для определения режима компиляции.objfpc
- это значение переменной, которое указывает на то, что используется режим компиляции поддержки объектно-ориентированного программирования в Free Pascal.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д