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

Вниз

Вызов метода предка   Найти похожие ветки 

 
mgaikin   (2003-01-27 14:45) [0]

Итак, имеем следующую иерархию классов:
TClass1 = class
function Something : Boolean; virtual;
end;

TClass2 = class(TClass1)
function Something : Boolean; override;
end;

TClass3 = class(TClass2)
function Something : Boolean; override;
end;

Вопрос в том, как из метода Something класса TClass3 вызвать метод Something класса TClass1?


 
Юрий Зотов   (2003-01-27 15:22) [1]

Временно (в try-finally) подменить адрес входа в VMT.


 
Бурундук   (2003-01-27 16:18) [2]

Можно так:

type
TBoolFunc = function: Boolean of object;
var
f: TBoolFunc;

TMethod(f).Code := @TClass1.Something;
TMethod(f).Data := Self;
res := f;


 
Palladin   (2003-01-27 17:52) [3]

а inherited для чего придумали?


 
uw   (2003-01-27 17:53) [4]

Проще в TClass1 завести статический метод Class1DoSomthing и звать его и из TClass1, и из TClass3.


 
uw   (2003-01-27 17:54) [5]

К сожалению, не работает inherited inherited.


 
REA   (2003-01-27 18:29) [6]

Мне как-то тоже нужно было, но я обошел другим дизайном - это изврат манипулировать VMT и до добра не доведет. Жаль что в inherited нельзя явно указать класс предка.



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

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

Наверх




Память: 0.45 MB
Время: 0.01 c
14-15903
Z@PODLO
2003-01-20 19:37
2003.02.06
Работа с текстом в Delphi 6


14-15843
Ежик
2003-01-22 16:03
2003.02.06
У меня депресняк....


14-15919
VictorT
2003-01-21 11:28
2003.02.06
Прикол.


3-15426
atmamont
2003-01-21 17:54
2003.02.06
где прочитать про работу компонент ADO?


8-15770
vbazik
2002-10-22 23:30
2003.02.06
оцифровка видео





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