Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.01.29;
Скачать: 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 вся ветка

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

Наверх




Память: 0.46 MB
Время: 0.006 c
14-93692
anana][
2004-01-06 15:32
2004.01.29
Когда-то я спрашивал, как можно добавить юзера...


1-93479
ikivio
2004-01-15 00:39
2004.01.29
Error opening file: “….. DebugUn.dfm”


3-93387
alextov
2003-12-29 15:28
2004.01.29
При вводе ключевого поля не отображаются некоторые лукапные поля


3-93368
hfa
2004-01-02 13:01
2004.01.29
Oracle Servers


14-93679
termos
2004-01-09 09:43
2004.01.29
Закрытие портов на локальной машине





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский