Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 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.068 c
15-1192011879
maverik
2007-10-10 14:24
2007.11.18
Библиотека для проигрывателя


2-1193115704
031178
2007-10-23 09:01
2007.11.18
Как программно выделить нужный пункт меню в TTreeView ?


2-1193231840
AlexanderMS
2007-10-24 17:17
2007.11.18
Тонкости в сравнении.


15-1192694476
Ekzot
2007-10-18 12:01
2007.11.18
Универсальный клиент к БД.


2-1193297234
em240
2007-10-25 11:27
2007.11.18
CheckListBox+IndexOfObject





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский