Форум: "Прочее";
Текущий архив: 2008.06.01;
Скачать: [xml.tar.bz2];
Вниздиректива 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); <-— [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]
Забыл сказать — 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;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.042 c