Форум: "Основная";
Текущий архив: 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.007 c