Похоже, разобрался с помощью статьи GunSmoker'a и Help-a от Embarcadero
В родном компиляторе Delphi в обычный метод класса передаётся скрытый параметр Self - указатель на данные экземпляра данного класса;
в метод, помеченный ключевым словом "class" (например "class procedure") скрытый параметр ...
Найдено 7 результатов
- 04.12.2019 13:39:02
- Форум: Обучение Free Pascal
- Тема: Странный пример кода из документации
- Ответы: 21
- Просмотры: 37876
- 04.12.2019 10:05:45
- Форум: Обучение Free Pascal
- Тема: Странный пример кода из документации
- Ответы: 21
- Просмотры: 37876
Re: Странный пример кода из документации
java73 писал(а):Уже писали, что
TTest = object ?
Попробуйте как class объявить.
Пробовал. Ругается на ключевое слова "static"; если его заменить на "class procedure" - точно так же даёт скомпилировать данный пример в режиме {$mode delphi}
- 02.12.2019 10:47:00
- Форум: Обучение Free Pascal
- Тема: Странный пример кода из документации
- Ответы: 21
- Просмотры: 37876
Re: Странный пример кода из документации
serbod
Вот здесь можно про этот "var" прочитать касательно Delphi.
Вот здесь можно про этот "var" прочитать касательно Delphi.
- 30.11.2019 20:35:58
- Форум: Обучение Free Pascal
- Тема: Странный пример кода из документации
- Ответы: 21
- Просмотры: 37876
Re: Странный пример кода из документации
iskander писал(а):Операция взятия адреса возвращает нетипизированный указатель
Да я даже не про операцию взятия адреса, а про тело самой процедуры "class procedure TTest.Testproc;", как она-то скомпилировалась, если в ней переменная "f" используется?
- 30.11.2019 14:31:39
- Форум: Обучение Free Pascal
- Тема: Странный пример кода из документации
- Ответы: 21
- Просмотры: 37876
Re: Странный пример кода из документации
iskander
Слушайте, а как у вас Delphi допустил компиляцию вашего кода, если в классовой процедуре "class procedure TTest.Testproc;" присваивается "f:=1;", ведь f - переменная, относящаяся к экземпляру, а не к классу в целом?
FPC 3.3.1 вполне компилирует.
У меня версия 3.0.4 (вроде, последний ...
Слушайте, а как у вас Delphi допустил компиляцию вашего кода, если в классовой процедуре "class procedure TTest.Testproc;" присваивается "f:=1;", ведь f - переменная, относящаяся к экземпляру, а не к классу в целом?
FPC 3.3.1 вполне компилирует.
У меня версия 3.0.4 (вроде, последний ...
- 30.11.2019 09:16:09
- Форум: Обучение Free Pascal
- Тема: Странный пример кода из документации
- Ответы: 21
- Просмотры: 37876
Re: Странный пример кода из документации
А что говорит душка Delphi насчёт этого примера?
Delphi (у меня 7-ой) компилирует только если объявить "P : Procedure of object;", закомментировать строку "P:=TTest.Myproc;" и убрать "@" в последующих строках (ну, не считая того, что пришлось закомментировать в определении самого объекта "const ...
Delphi (у меня 7-ой) компилирует только если объявить "P : Procedure of object;", закомментировать строку "P:=TTest.Myproc;" и убрать "@" в последующих строках (ну, не считая того, что пришлось закомментировать в определении самого объекта "const ...
- 29.11.2019 19:49:33
- Форум: Обучение Free Pascal
- Тема: Странный пример кода из документации
- Ответы: 21
- Просмотры: 37876
Странный пример кода из документации
Здравствуйте!
Я новичок во FreePascal, но не новичок в Delphi.
В процессе изучения документации "Free Pascal Reference guide" наткнулся на пример кода, который показался мне странным (CHAPTER 5. OBJECTS - Class or static methods, стр. 79 PDF-документа):
{$APPTYPE CONSOLE}
{$IFDEF FPC}{$MODE DELPHI ...
Я новичок во FreePascal, но не новичок в Delphi.
В процессе изучения документации "Free Pascal Reference guide" наткнулся на пример кода, который показался мне странным (CHAPTER 5. OBJECTS - Class or static methods, стр. 79 PDF-документа):
{$APPTYPE CONSOLE}
{$IFDEF FPC}{$MODE DELPHI ...
