![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Создание класса на основе TIdHTTP
Nucer © (2009-10-19 19:45:00)Хочу создать класс на основе TidHTTP немного изменив конструктор (всего лишь дополнительная инициализация некоторых параметров).
THTTPClient = class(TIdHTTP)
public
constructor Create(CookieManager: TIdCookieManager = nil); override;
end;
constructor THTTPClient.Create(CookieManager: TIdCookieManager = nil);
begin
inherited Create(nil);
if Assigned(CookieManager) then Self.CookieManager := CookieManager;
Self.Request.UserAgent := 'Tool';
...
end;
В итоге получаю warning:
Method 'Create' hides virtual method of base type 'TIdCustomHTTP'
Что сделано не так? Как исправить? Или на ошибку не стоит обращать внимания?
Anatoly Podgoretsky (2009-10-19 22:47:00) [1]> Nucer (19.10.2009 20:10:02) [2]
Зависит от того, что ты хочешь сделать, если скрыть то правильно, если нет то только создание конструктора с другим именем.
DVM (2009-10-19 20:19:00) [2]
> Nucer
Разберитесь с этими словами override, overload, virtual, dynamic, reintroduce - все проблемы сразу отпадут. Описаны в любой хорошей книжке.
Nucer (2009-10-19 20:17:00) [3]Понял, overload не надо... В противном случае можно будет использовать оба конструктора.
Nucer (2009-10-19 20:10:00) [4]Прошу прощения, с override вообще не компилируется (забыл убрать перед копирование на форум после очередной проверки).
Вот так получаю warning:
THTTPClient = class(TIdHTTP)
public
constructor Create(CookieManager: TIdCookieManager = nil);
end;
Если добавить reintroduce, то предупреждения уже нет:
THTTPClient = class(TIdHTTP)
public
constructor Create(CookieManager: TIdCookieManager = nil); reintroduce;
end;
К reintroduce можно добавить еще и overload (с первого взгляда ни на что не влияет, компилируется и работает без ошибок), но я не знаю, как именно в этой ситуации будет правильно.
DVM (2009-10-19 20:05:00) [5]
> Как исправить?
override убрать?