Вниз
Скачать: CL | DM;

ООП - вызов родительской функции   Найти похожие ветки 

← →
baataars   (2004-01-13 17:11) [0]

вопрос по ООП.
есть значится у родительского объекта функция называется CheckData, с ; virtual;

в конкретном потомке делаю этой функции override.

так вот - хочется в потомке сделать

function TNewObj.CheckData():Boolean;
begin
if(inherited=False)then
CheckData=False
else
CheckData=ПроверкаЛокальныхДанных;
end;

, т.е. сначала вызвать родительскую функцию и проверить что нет ошибок в общих данных, потом проверить уже от потомка.


← →
Тимохов ©   (2004-01-13 17:13) [1]

И где тут вопрос?
Пиши if(inherited checkdata() =False)then
CheckData=False


← →
alex_*** ©   (2004-01-13 17:15) [2]

overload; Только это будет уже не виртуальный метод


← →
alex_*** ©   (2004-01-13 17:17) [3]

>есть значится у родительского объекта функция называется CheckData, с ;
- если подразумевалось что возвращается Boolean, то [2] снимается.


← →
Verg ©   (2004-01-13 17:55) [4]


> function TNewObj.CheckData():Boolean;
> begin
> if(inherited=False)then
> CheckData=False
> else
> CheckData=ПроверкаЛокальныхДанных;
> end;


Ну да,
result := inherited CheckData() and ПроверкаЛокальныхДанных;


← →
Serginio666   (2004-01-13 18:10) [5]

Попробуй Через
TBoolFunc=Function:Boolean of object;
Meth:TMethod;
Meth.Code=@TParentObj.CheckData;
Meth.Data=Self;
TBoolFunc(Meth)();


← →
baataars   (2004-01-13 18:11) [6]

спасибо
if(inherited checkdata() =False)then
помогло.


← →
Тимохов ©   (2004-01-13 18:12) [7]

Граждне вы о чем?
У человека всего лишь и было, что для функций нельзя просто писать inherited, надо inherited FuncName.


← →
Александр   (2004-01-16 13:11) [8]

А зачем if?
Result := inherited CheckData() and {твое условие};


← →
Ega23 ©   (2004-01-16 13:24) [9]

Кстати, для общего развития вопрос: а могу ли я зи перегруженного метода потомка вызвать не такой же метод предка, а другой?


← →
Внук ©   (2004-01-16 13:44) [10]

Лично я не возражаю



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

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.01 c
9-93319
Dead Moroz
2003-07-01 03:42
2004.01.29
Движок для текстового 3D_Shooter-а


7-93710
-=GaLaN=-
2003-11-11 20:06
2004.01.29
Lock workstation (Win+L)


14-93666
BorisMor
2004-01-07 21:34
2004.01.29
Немного политики


14-93689
SH
2004-01-06 14:12
2004.01.29
Граббер картинок


6-93610
Sam Stone
2003-11-22 21:53
2004.01.29
ICQ




   Наверх