| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Общие вопросы > Прерывание наследования. |
| Автор: CROTishka 2.11.2010, 10:17 |
| напомните пожалуйста синтаксис для прерывания наследования в делфи, и есть ли такой вообще. |
| Автор: БелАмор 2.11.2010, 13:07 |
| Если мне не изменят память, в последних версиях Delphi появилось ключевое слово final, которое запрещает наследование от этого класса. |
| Автор: CROTishka 3.11.2010, 13:36 |
| Нет, не финализирование, а именно прерывание - чтобы TChild is TParent возвращал фолс. Такое возможно в делфи? |
| Автор: CROTishka 3.11.2010, 15:02 |
| Ну конечно! |
| Автор: Alexeis 3.11.2010, 15:24 | ||
| Самый простой способ это поместить предка внутрь в качестве отдельного поля-объекта. Более сложный у текущего метакласса найти место где расположен адрес метакласса предка записать вместо адреса метакласса предка что угодно Вот например кусок кода из System для получения ссылки на метакласс передка
|
| Автор: CROTishka 3.11.2010, 15:36 |
| Ну, ртти я могу надурить, это не сложно. Просто помнится года 2-4 назад читал статью какую-то про то, как писать контейнер компонентов, и там в качестве примера было настедование транспортное средство->4ехколесное ТС->машина->Москвич, или что-то такое, а потом они брали и мотоцикл наследовали от ТС и отделяли штатными средствами языка (вроде), чтобы его туда же положить нельзя было. Хоть убей не вспомню, где это читал, и делфикингдом лежит - не поискать. |