Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.01.29;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.012 c
3-93340
SaperXL
2003-12-28 16:13
2004.01.29
Защита БД


3-93380
sashok
2003-12-30 11:12
2004.01.29
Локальные базы данных


3-93383
Silver_
2003-12-30 16:20
2004.01.29
Post После Insert запись убегает в конец. Как на месте оставить


1-93487
Луарвик
2004-01-15 13:35
2004.01.29
Копирование файла из буфера обмена на диск


1-93507
Марат
2004-01-19 06:16
2004.01.29
DBGrid





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