Хорошо, так что, надеюсь, это достаточно субъективный вопрос для программистов, но здесь идет. Я постоянно расширяю свои знания языков и практики разработки программного обеспечения ... и столкнулся с чем-то, что просто не имеет для меня никакого смысла.
В C ++ объявления классов включают private:
методы и параметры в заголовочный файл, что, теоретически, это то, что вы передаете пользователю, чтобы включить, если вы сделаете их библиотекой lib.
В Objective-C, в @interface
основном , делают то же самое, заставляя вас перечислять свои закрытые члены (по крайней мере, есть способ получить закрытые методы в файле реализации).
Из того, что я могу сказать, Java и C # позволяют вам предоставлять интерфейс / протокол, который может объявлять все общедоступные свойства / методы и дает кодировщику возможность скрывать все детали реализации в файле реализации.
Зачем? Инкапсуляция является одним из основных принципов ООП, почему C ++ и Obj-C не имеют этой базовой способности? Есть ли какой-нибудь лучший метод обхода Obj-C или C ++, который скрывает всю реализацию?
Благодаря,