Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.06.22;
Скачать: CL | DM;

Вниз

Надо ли ставить override?   Найти похожие ветки 

 
Ega23 ©   (2008-05-28 10:50) [0]

для абстрактного метода?
Суть такова:

TCusomClass = class (TObject)
public
 procedure Clear; virtual; abstract;
end;

TMyClass = class (TCusomClass)
public
 procedure Clear; override;
end;


Всегда ставил. Вчера выяснилось, что из IDE по Ctrl + Space можно выпадающий список вызвать для перегрузки методов. Так вот, для просто virtual-метода автоматически override подставляется, а для virtual abstract - нет. Задумался. Это просто недоработка шаблона IDE, или там override действительно не нужен?


 
clickmaker ©   (2008-05-28 10:53) [1]

по логике не нужен. Ведь в базовом реализации нет - нечего и перекрывать


 
Игорь Шевченко ©   (2008-05-28 10:55) [2]

Надо. Иначе ты оборвешь цепочку методов.


 
Ins ©   (2008-05-28 10:56) [3]

Нужен. В качестве доказательства лови Abstract Error

procedure TForm1.FormCreate(Sender: TObject);
var
 Obj: TCusomClass;    // Объявляем как TCusomClass
begin
 Obj := TMyClass.Create; // А создаем - TMyClass
 try
   Obj.Clear;
 finally
   Obj.Free;
 end;
end;


 
Ega23 ©   (2008-05-28 10:59) [4]


> Ins ©   (28.05.08 10:56) [3]


Хороший пример. Понял.

Всем спасибо!



Страницы: 1 вся ветка

Текущий архив: 2008.06.22;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.017 c
2-1211574528
Otz
2008-05-24 00:28
2008.06.22
Записи в DBGrid


2-1212024373
AlexAA
2008-05-29 05:26
2008.06.22
Работа с камерой


15-1210428840
Cj
2008-05-10 18:14
2008.06.22
Side Bar вот только для ХР


15-1210395742
Slider007
2008-05-10 09:02
2008.06.22
С днем рождения ! 10 мая 2008 суббота


2-1212001670
buzb
2008-05-28 23:07
2008.06.22
Несколько идентичных форм.