record'ы с методами
Модератор: Модераторы
- XProger
- новенький
- Сообщения: 44
- Зарегистрирован: 13.08.2007 02:52:28
- Откуда: Москва
- Контактная информация:
record'ы с методами
Всего два вопроса:
1) Планируется ли данная весьма удобная и полезная фитча в FPC?
2) Перегрузка операторов в FPC синтаксически отличается от реализации в Delphi. Планируется ли введение большей совместимости в режиме {$MODE DELPHI} ?
1) Планируется ли данная весьма удобная и полезная фитча в FPC?
2) Перегрузка операторов в FPC синтаксически отличается от реализации в Delphi. Планируется ли введение большей совместимости в режиме {$MODE DELPHI} ?
- Иван Шихалев
- энтузиаст
- Сообщения: 1138
- Зарегистрирован: 15.05.2006 11:26:13
- Откуда: Екатеринбург
- Контактная информация:
А что там полезного?
Иван Шихалев писал(а):А что там полезного?
Тем более, что это уже вовсе и не рекорд получается...
Используй
TMyType=object
procedure method;
end;
или
TMyType=record
method:TMyProcedure;
end;
Вообще бы неплохо уточнить для какой цели. Небось тоже желание получить кроссязыковые кроссплатформенные экспортируемые обьекты
Тогда кроме второго варианта вроде пока ещё ничего не придумали 
TMyType=object
procedure method;
end;
или
TMyType=record
method:TMyProcedure;
end;
Вообще бы неплохо уточнить для какой цели. Небось тоже желание получить кроссязыковые кроссплатформенные экспортируемые обьекты
FedeX
Ну да, потом сразу же потребуется ввести события, без этого не обойтись, ведь надо же отслеживать ситуацию...
И что получим в итоге?
Ну да, потом сразу же потребуется ввести события, без этого не обойтись, ведь надо же отслеживать ситуацию...
И что получим в итоге?
- XProger
- новенький
- Сообщения: 44
- Зарегистрирован: 13.08.2007 02:52:28
- Откуда: Москва
- Контактная информация:
Спасибо за ответы.
Нужно это лишь для создания кроссязыковых (Delphi <-> FPC) математических "классов" по типу такого:
Насколько я знаю, object не поддерживает case, поэтому пока извращаюсь со всякими absolute...
А что до перегрузки операторов, столкнулся с одной очень неприятной особенностью, в {$MODE DELPHI} она не работает, пишет:
Поэтому приходится извращаться переключением на {$MODE FPC} внутри мат. модуля и восстановлением в конце
Нужно это лишь для создания кроссязыковых (Delphi <-> FPC) математических "классов" по типу такого:
Код: Выделить всё
TMat3f = record
procedure Inverse;
...
case Integer of
0: (cell : array [0..3, 0..3] of Single);
1: (e00, e01, e02, e03,
e10, e11, e12, e13,
e20, e21, e22, e23,
e30, e31, e32, e33: Single);
2: (row: array [0..3] of TVec4f);
end;Насколько я знаю, object не поддерживает case, поэтому пока извращаюсь со всякими absolute...
А что до перегрузки операторов, столкнулся с одной очень неприятной особенностью, в {$MODE DELPHI} она не работает, пишет:
operator Fatal: Syntax error, "=" expected but "*" found
Поэтому приходится извращаться переключением на {$MODE FPC} внутри мат. модуля и восстановлением в конце
XProger писал(а):Насколько я знаю, object не поддерживает case
Зато object поддерживает overload.
XProger
Не могу сказать, что совсем уж в рамках...
Но перезагрузка позволяет использовать одну и ту же функцию с разным типом параметров:
Не могу сказать, что совсем уж в рамках...
Но перезагрузка позволяет использовать одну и ту же функцию с разным типом параметров:
Код: Выделить всё
myobject = TObject
procedure пересчитать(ar: array of single); overload;
procedure пересчитать(ar: array of TVec4f); overload;- XProger
- новенький
- Сообщения: 44
- Зарегистрирован: 13.08.2007 02:52:28
- Откуда: Москва
- Контактная информация:
Vadim
Но обращение вида:
Эта перегрузка сделать не поможет :\
Но обращение вида:
Код: Выделить всё
Mat4f.e00 := blabla;
Mat4f.cell[i, j] := blablabla;Эта перегрузка сделать не поможет :\
- *vmr
- постоялец
- Сообщения: 168
- Зарегистрирован: 08.01.2007 00:46:07
- Откуда: Киев
- Контактная информация:
Object уже не поддерживается дельфями, вернее оставлен для совместимости...
packed object -- уже дает синтаксическую ошибку... (а как же TVector3f = packed object ?), хотя в седьмых дельфях работал на ура....
В рекорды подобавляли каких-то методов...
Блин, ну остановитесь на чем-то одном!!!
А то ни того ни другого — везде какие то полуфабикаты...
packed object -- уже дает синтаксическую ошибку... (а как же TVector3f = packed object ?), хотя в седьмых дельфях работал на ура....
В рекорды подобавляли каких-то методов...
Блин, ну остановитесь на чем-то одном!!!
А то ни того ни другого — везде какие то полуфабикаты...
