Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Создание класса на основе 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 убрать?


Наверх

Титульная страница Поиск, карта сайта Написать письмо