Как запретить вызов функции как процедуры?

Вопросы программирования на Free Pascal, использования компилятора и утилит.

Модератор: Модераторы

Как запретить вызов функции как процедуры?

Сообщение Stargazer » 28.01.2008 15:25:19

FPC 2.0.4

Есть исходник, из текста которого неясно, вызывается функция или процедура (конкретно - это модуль в исходниках FPC, называется AVL_TREE.PP).

Процедура и функция имеют одно имя, являются методами одного класса, в качестве формальных параметров получают класс или указатель:
Код: Выделить всё
  TAVLTree = class
...
    procedure Add(ANode: TAVLTreeNode);
    function Add(Data: Pointer): TAVLTreeNode;
...


Соответственно, можно вызвать функцию как процедуру, ничему не присваивая результат вычисления функции, и компилятор это проглотит :)
В результате исходник стал неоднозначным.

Можно ли запретить такую вольность?
Stargazer
новенький
 
Сообщения: 52
Зарегистрирован: 30.05.2005 09:46:32

Сообщение Stargazer » 28.01.2008 15:34:27

Вопрос наполовину снят, тип Pointer и тип Class всё же разные вещи.
Вместо Class нельзя подставить Pointer.

P.S. Вместо Pointer можно подставить Class!
Stargazer
новенький
 
Сообщения: 52
Зарегистрирован: 30.05.2005 09:46:32


Вернуться в Free Pascal Compiler

Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex [Bot] и гости: 5

Рейтинг@Mail.ru