Я тут пишу генератор кода для моего IDE и возник вопрос. В С++ есть такое дело: в конструкторе обьекта не вызываются перекрытые методы. Я думаю сделать наоборот в IDE. Вопрос знатокам: кто что думает по этому поводу? Есть какая-то причина не делать этого, а делать по модели С++?
Что значит "перекрытые"? Прайветы чтоли? Все нормально вызывается, у конструктора такие же "права" как и у остальных функций-членов.
Давно не писал на СИ, но вообще то Дельфи тем и хуже что там вызывается просто inherited, и вызывается метод предка, а в СИ можно вызвать перекрытый метод любого предка просто указанием ClassXXX::Method. В Дельфи подобное можно сделать только с преобразованиями типов и объявлениями левых наследников для доступа к protected методам (вообщем муторно довольно). А в Си красиво и логично. Речь идет конечно о виртуальных методах.
offtop Gordon > "В Дельфи подобное можно сделать только с преобразованиями типов и объявлениями левых наследников для доступа к protected методам(вообщем муторно довольно). А в Си красиво и логично" Дело вкуса и (дурной) привычки Какой вообще смысл в protected методах, если к ним будет разрешен доступ кому угодно откуда угодно ? Protected для того и придуманы, чтобы с одной стороны запретить прямой доступ к ним со стороны "ламеров", научившихся бросать контролы на формы, но с другой стороны оставить возможность изменения функциональности при разработке наследуемых классов. Этим они и отличаются от private и public\published. Что касается приведения типов, то это нормальное явление в любых языках (в т.ч. и асме). А синтаксис ClassXXX.Method в дельфи допустим только для class-методов, не оперирующих с полями конкретного экземпляра - ИМХО все строго и логично staier > "в с++ нельзя.. в дельфи - можно" Если это так, то вопрос - почему ?
>Какой вообще смысл в protected методах... Речь идет о доступе к protected своего же класса. А он по определению должен быть доступен. А в дельфи по умолчанию вызывается метод предка. Если ты по иерархии хочешь пропустить ожного их предков - тут и проблема. В принципе дело вкуса конечно, но это часто нужно на обработчиках, а они к счастью published, так что в принципе приходим к Си варианту в данном конкретном случае.