| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > 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. |