Конференция "Основная" » переопределение операций(сложение, вычитание...) [WinXP]
 
  • master_root © (18.06.08 16:07) [0]
    Переопределяю стандартную операцию вычитания для моего класса. Делаю всё как написано в справке к моей BDS 2005:
    Код:
    class operator Subtract(a, b: TNumSys): TNumSys;virtual;abstract;  
    где
    TNumSus - имя моего класса внутри которого я переопределяю операцию вычитания,
    virtual;abstract; - объявляю его виртуальным и абстрактным, т.к. алгоритм его работы полностью должен определяться в дочерних классах.

    Компилятор на синтаксис не ругается, но прикомпиляции выдаёт аж 5 ошибок только по одной этой строчке:
    [Pascal Error] numsys_concept.pas(32): E2123 PROCEDURE, FUNCTION, PROPERTY, or VAR expected
    [Pascal Error] numsys_concept.pas(32): E2029 ',' or ':' expected but '(' found
    [Pascal Error] numsys_concept.pas(32): E2029 ';' expected but ':' found
    [Pascal Error] numsys_concept.pas(32): E2029 ',' or ':' expected but ';' found
    [Pascal Error] numsys_concept.pas(33): E2058 Class, interface and object types only allowed in type section

    Помогите пожалуйста разобраться. Что делать?
  • Viktorious © (18.06.08 17:09) [1]
    Читайте справку внимательнее:

    Delphi for .NET and Delphi for Win32 allow certain functions, or "operators" to be overloaded within record declarations. Delphi for .NET also allows overloading within class declarations.

    Перегрузка операторов в классе - только для .NET. Delphi for Win32 допускает только перегрузку операторов для записей (record).
  • master_root © (18.06.08 20:18) [2]
    там же в примере перегрузка используется в классе
  • master_root © (18.06.08 20:28) [3]
    спасибо.разобрался
 
Конференция "Основная" » переопределение операций(сложение, вычитание...) [WinXP]
Есть новые Нет новых   [134491   +12][b:0][p:0]