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

Вниз

Подмена protected метода   Найти похожие ветки 

 
Hooch   (2002-09-30 17:03) [0]

День добрый !

Господа, можно ли каким нибудь образом переопределить protected метод объекта, не создавая класс на его основе и не трогая сам класс ?


 
qube   (2002-09-30 17:06) [1]

Мне кажется, только каким-то ужасным хирургическим вмешательством в VMT.


 
qube   (2002-09-30 17:16) [2]

Но protected методы затем и делаются защищенными, чтобы их при желании можно было переопределить нормальным наследованием.


 
Hooch   (2002-09-30 17:25) [3]

это то я понимаю, просто не хочется из-за 2 сток кода новый класс городить и во всех формах менять :-)


 
Игорь Шевченко   (2002-09-30 17:25) [4]

Hooch © (30.09.02 17:03)

Никак.


 
Hooch   (2002-09-30 17:38) [5]

Жаль...очень жаль :-( ну да ладно, кому сейчас легко ? :-)


 
Digitman   (2002-09-30 17:48) [6]

Ну отчего же ? Если защищенный метод, к примеру, статический, достаточно в design-time расчитать (если есть исходники) смещение целевого поля (содержащего адрес метода - он един для всех экземпляров класса) и в run-time записать по адресу "адреса экземпляра + смещение поля" адрес иного метода. Лишь бы соглашения о передаче параметров/ возврате результата были соблюдены и корректны в конечном итоге


 
Игорь Шевченко   (2002-09-30 17:52) [7]

Digitman © (30.09.02 17:48)

Да некуда там писать...Это же обычный вызов функции, если он не виртуальный :-)


 
Digitman   (2002-09-30 18:12) [8]

>Игорь Шевченко

А, ну да ... Ты прав - я это почему-то подразумевал как дифолт-условие)... Т.е. при таких вот условиях можно и поковыряться, иначе - не стоит даже напрягаться)


 
Игорь Шевченко   (2002-09-30 18:17) [9]

Digitman © (30.09.02 18:12)

Проще наследника сделать :-)

С уважением,


 
Digitman   (2002-09-30 18:21) [10]

>Игорь Шевченко

Да это понятно) ... Но мы ж тут вроде бы как извращаемся))


 
Le Taon   (2002-09-30 18:22) [11]

Ну, можно, наверное, влезть в код метода, заменить первые несколько байт и сделать джамп в свой метод.

Но написать новый класс гораздо проще. И правильнее.



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

Форум: "Основная";
Текущий архив: 2002.10.10;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.18 c
4-32068
Wild Sam
2002-08-23 12:28
2002.10.10
Как правильно сделать свою форму Parent ом для другого приложе-


14-31982
Некогда не РАСКОЛЮСЬ
2002-09-15 15:21
2002.10.10
Как стать мастером...


4-32089
Карлсон
2002-08-26 17:07
2002.10.10
Чаво я не так делаю?


6-31932
Mishel
2002-08-09 15:02
2002.10.10
UDP/Soсket - на голом WinApi


1-31822
Эрик
2002-09-27 17:30
2002.10.10
У кого есть Delphi 6 servise pack 2?





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