Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Подмена родительского класса


Автор: AlekXL 28.6.2012, 03:19
Предположим, у нас есть генерализованный базовый класс, наподобие TStream, обеспечивающий некоторый уровень функционала, а в деталях полагающийся на специализированных наследников, скажет TFileStream.

у нас нет прямого доступа к коду обоих классов: это чужие классы, которые не хотелось бы модифицировать. Кроме того , специализированный класс наперед неизвестен.
 Но есть нужда расширить  неспециализированный функционал базового класса, прежде всего, перекрывая виртуальные методы.
Возможно ли это? Делал ли кто-нибудь такое?

Автор: k0rvin 28.6.2012, 07:56
А почему ты просто не унаследуешь класс от TFileStream и переопределишь нужные методы?

Автор: CodeMonkey 29.6.2012, 16:57
Да, http://www.transl-gunsmoker.ru/2011/07/polymorphism-ad-nauseum.html.

Добавлено через 3 минуты и 12 секунд
P.S. Подмену не всего класса целиком, а чисто одного виртуального метода можно сделать на базе кода http://www.transl-gunsmoker.ru/2011/07/hack-8-explicit-vmt-calls.html.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)