Форум: "Прочее";
Текущий архив: 2007.11.18;
Скачать: [xml.tar.bz2];
ВнизЧудеса компилятора Delphi. Баг? Найти похожие ветки
← →
oxffff © (2007-10-12 09:19) [0]Возникает следующая ошибка
[Error] Unit1.pas(45): Ambiguous overloaded call to "create"
TClass1=class
public
constructor create(const Components:array of Tobject);
end;
TClass2=class(TClass1)
public
constructor create(const Components:array of Tcomponent;const b:array of tobject);overload;
end;
{ T3DEComponentContainer }
constructor TClass1.create(const Components: array of Tobject);
begin
end;
{ T3DEComponentContainer2 }
constructor TClass2.create(const Components: array of Tcomponent; const b: array of tobject);
begin
end;
procedure TForm1.Button1Click(Sender: TObject);
var a:TClass2;
begin
a.create([],[]);
end;
Интересно!!!
Если поменять
constructor create(const Components:array of Tcomponent;const b:array of tobject);overload;
на
constructor create(const Components:array of Tobject;const b:array of tobject);overload;
то все нормально.
IMHO. Это баг.
Версия 7 и BDS 2006.
Очень надеюсь на обладателей 2007, которые могут протестить в 2007.
Заранее благодарен.
← →
Kolan © (2007-10-12 10:06) [1]Удалено модератором
Примечание: Offtopic
← →
Rouse_ © (2007-10-12 10:19) [2]overload убери и
constructor TClass2.create(const Components: array of Tcomponent;
const b: array of tobject);
begin
inherited create(b);
end;
← →
oxffff © (2007-10-12 10:22) [3]
> Rouse_ © (12.10.07 10:19) [2]
А мне как раз и нужно с overload.
+
>Интересно!!!
>Если поменять
>constructor create(const Components:array of Tcomponent;const b:array of >tobject);overload;
>на
>constructor create(const Components:array of Tobject;const b:array of >tobject);overload;
>то все нормально.
Так что overload здесь не причем.
← →
Rouse_ © (2007-10-12 10:25) [4]> А мне как раз и нужно с overload.
Тебе шашечки или ехать?
← →
tesseract © (2007-10-12 10:29) [5]
> [Error] Unit1.pas(45): Ambiguous overloaded call to "create"
Написано же, что overload тут.
← →
oxffff © (2007-10-12 10:30) [6]
> Rouse_ © (12.10.07 10:25) [4]
> > А мне как раз и нужно с overload.
> Тебе шашечки или ехать?
Сейчас мне вообще Oracle.
Меня интересует конкретно твое мнение является ли это багом с твоей точки зрения?
:)
Если да.
То я напишу им пусть правят.
← →
oxffff © (2007-10-12 10:32) [7]
> tesseract © (12.10.07 10:29) [5]
>
> > [Error] Unit1.pas(45): Ambiguous overloaded call to "create"
>
>
> Написано же, что overload тут.
А это для кого написано?
+
>Интересно!!!
>Если поменять
>constructor create(const Components:array of Tcomponent;const b:array of >tobject);overload;
>на
>constructor create(const Components:array of Tobject;const b:array of >tobject);overload;
>то все нормально.
там тоже overload и работает.
Сменился только тип параметра.
← →
Однокамушкин (2007-10-12 10:35) [8]
> procedure TForm1.Button1Click(Sender: TObject);
> var a:TClass2;
> begin
> a.create([],[]);
> end;
Кто ж вас учил так вызывать конструкторы?
← →
oxffff © (2007-10-12 10:36) [9]Зы.
упростим задачку. Ошибка такая же. Теперь что.
TClass1=class
public
constructor create(const Components:array of Tobject);overload;
constructor create(const Components:array of Tcomponent;const b:array of tobject);overload;
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
constructor TClass1.create(const Components: array of Tobject);
begin
end;
constructor TClass1.create(const Components: array of Tcomponent;
const b: array of tobject);
begin
end;
procedure TForm1.Button1Click(Sender: TObject);
var a:TClass1;
begin
a.create([],[]);
end;
← →
tesseract © (2007-10-12 10:36) [10]
> там тоже overload и работает. Сменился только тип параметра.
Вот это и есть баг :-)
← →
oxffff © (2007-10-12 10:38) [11]
> Кто ж вас учил так вызывать конструкторы?
Скажите, А вы уверены, что суть поменяется?
← →
Суслик (2007-10-12 10:38) [12]успокойся - ошибка это ошибка. у них бывает такое.
← →
oxffff © (2007-10-12 10:39) [13]
> tesseract © (12.10.07 10:36) [10]
>
> > там тоже overload и работает. Сменился только тип параметра.
>
>
>
> Вот это и есть баг :-)
[9]
← →
oxffff © (2007-10-12 10:41) [14]
> Суслик (12.10.07 10:38) [12]
> успокойся - ошибка это ошибка. у них бывает такое.
А 2007?
Заранее благодарен.
← →
Суслик (2007-10-12 10:47) [15]
> 2007?
> Заранее благодарен.
тоже самое - ну у меня update 2. update3 только дома есть. неплохо бы на нем тоже проверить.
я думаю это баг.
← →
Ins © (2007-10-12 12:02) [16]Я недавно тоже интересную фишечку нашел, по крайней мере в D7. Интересно, это баг или фича? Попробуйте скомпилировать...
type
TForm1 = class(TForm)
Button1: StdCtrls.TButton;
private
{ Private declarations }
public
{ Public declarations }
end;
Страницы: 1 вся ветка
Форум: "Прочее";
Текущий архив: 2007.11.18;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.045 c