Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.06.01;
Скачать: CL | DM;

Вниз

директива Overload   Найти похожие ветки 

 
Palladin ©   (2008-04-15 13:38) [0]

от ведь как... 10 минут думал, чего компилятору не нравится... ищет, видимо, перегрузку с параметром Pointer...
век живи ..., как говорится...

Type
TMethod=Procedure of Object;
TClass1=Class
 Private
  Procedure lcMethod;
 Public
  Constructor Create;
End;

Procedure TClass1.lcMethod;
Begin
End;

Procedure Proc(Const s:String;m:TMethod); Overload;
Begin
End;

Procedure Proc(n:Integer;m:TMethod); Overload;
Begin
End;

Constructor TClass1.Create;
Begin
Proc(1,Nil);
End;


D6, не компилируется

кто может проверить на других версиях, если есть желание - отпишитесь


 
Kolan ©   (2008-04-15 13:45) [1]

> кто может проверить на других версиях, если есть желание
> — отпишитесь

Constructor TClass1.Create;
Begin
Proc(1,Nil); <-&#151; [Pascal Error] Unit1.pas(46): E2250 There is no overloaded version of "Proc" that can be called with these arguments
End;


 
Ega23 ©   (2008-04-15 13:48) [2]


Constructor TClass1.Create;
Begin
Proc(1,Nil);
End;


There is no overloaded version of "Proc" that can be called with these arguments

D7, SP2


 
AlexKniga ©   (2008-04-15 13:50) [3]

Если поменять:
TMethod=Procedure of Object;
на
TMethod=Procedure;

Всё нормально компилиться.
D5


 
Игорь Шевченко ©   (2008-04-15 13:51) [4]

Proc(1,TMethod(Nil));

D2006


 
Palladin ©   (2008-04-15 13:57) [5]


> Игорь Шевченко ©   (15.04.08 13:51) [4]

так это понятно :)
другое интересно: неявное приведение не реализовали при поиске перегруженной


> AlexKniga ©   (15.04.08 13:50) [3]

метод и процедура это разные вещи


 
Оригинал   (2008-04-15 13:58) [6]


> Constructor TClass1.Create;
> Begin
> Proc(1,Nil);
> End;


Constructor TClass1.Create;
Begin
 Proc(1,TMethod(Nil));
End;


 
Palladin ©   (2008-04-15 14:00) [7]


> Игорь Шевченко ©   (15.04.08 13:51) [4]
> Оригинал   (15.04.08 13:58) [6]

я не совета просил, мне ситуация с компиляторами интересна


 
Kolan ©   (2008-04-15 14:02) [8]

> [1]

Забыл сказать &#151; BDS2006


 
Оригинал   (2008-04-15 14:03) [9]


> Palladin ©   (15.04.08 14:00) [7]
>
> > Игорь Шевченко ©   (15.04.08 13:51) [4]
> > Оригинал   (15.04.08 13:58) [6]
>
> я не совета просил, мне ситуация с компиляторами интересна


А разве компилятор не прав?


 
Kolan ©   (2008-04-15 14:05) [10]

Тоже самое и в RAD 2007.


 
b z   (2008-04-15 14:05) [11]


> другое интересно

наверное из-за этого
Procedure Proc(n:Integer;m:TMethod1); Overload;
Begin
End;

Procedure Proc(n:Integer;m:TMethod2); Overload;
Begin
End;


 
Kolan ©   (2008-04-15 14:06) [12]

А FPC (Lazarus) схавал.


 
Palladin ©   (2008-04-15 14:07) [13]


> Оригинал   (15.04.08 14:03) [9]

TMethod=Procedure of Object;
Procedure Proc(n:Integer;m:TMethod);

...
Proc(1,Nil); // неявное приведение к TMethod
...


так где компилятор неправ? в [0] или тут?


 
Игорь Шевченко ©   (2008-04-15 14:07) [14]


> Proc(1,Nil); // неявное приведение к TMethod


С какой радости ?


 
Palladin ©   (2008-04-15 14:07) [15]


> b z   (15.04.08 14:05) [11]

из-за чего этого?


 
Palladin ©   (2008-04-15 14:08) [16]


> Игорь Шевченко ©   (15.04.08 14:07) [14]

с такой, что компилируется


 
Игорь Шевченко ©   (2008-04-15 14:08) [17]

TMethod смотрим объявление:

 TMethod = record
   Code, Data: Pointer;
 end;

В честь чего компилятор неявно должен nil к TMehtod приводить ?


 
Игорь Шевченко ©   (2008-04-15 14:09) [18]


> с такой, что компилируется


если overload нету ?


 
Palladin ©   (2008-04-15 14:11) [19]


> Игорь Шевченко ©   (15.04.08 14:08) [17]

а с какой стати ты его явно приводишь в [4]?


 
Palladin ©   (2008-04-15 14:11) [20]


> Игорь Шевченко ©   (15.04.08 14:09) [18]

да


 
Игорь Шевченко ©   (2008-04-15 14:18) [21]

Palladin ©   (15.04.08 14:11) [20]

Ну напиши в QC


 
Bless ©   (2008-04-15 16:58) [22]


> Игорь Шевченко ©   (15.04.08 13:51) [4]
>
> Proc(1,TMethod(Nil));
>
> D2006



> Palladin ©   (15.04.08 13:57) [5]
> > Игорь Шевченко ©   (15.04.08 13:51) [4]
>
> так это понятно :)


А в D7 так тоже не компилируется. Invalid typecast


 
Palladin ©   (2008-04-15 17:21) [23]


> Bless ©   (15.04.08 16:58) [22]

не обращай внимания... я не вдумался чего там Игорь написал...



Страницы: 1 вся ветка

Текущий архив: 2008.06.01;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.022 c
2-1209808931
assassin8899
2008-05-03 14:02
2008.06.01
автодобавление


2-1209926535
Berkut
2008-05-04 22:42
2008.06.01
Ассемблерные вставки


2-1209995988
Инна
2008-05-05 17:59
2008.06.01
Запрос и удаление


2-1210232151
troyan_81
2008-05-08 11:35
2008.06.01
ValueListEditor1 - Как юзать?


3-1198674812
Циркуль
2007-12-26 16:13
2008.06.01
выгрузка из датасета через ODBC и ADO в разные форматы