1) Что такое двоичная инкапсуляция в c ++ и поддерживает ли c ++ двоичную инкапсуляцию?
Я провел некоторый поиск, но все, что я обнаружил, это просто инкапсуляция, которая, по сути, не более чем упаковка данных и методов в классе.
2) Так в чем же разница между инкапсуляцией и двоичной инкапсуляцией?
Цитата из этот текст следует прояснить ситуацию:
Принимая во внимание, что C ++ поддерживает синтаксическую инкапсуляцию через свои частные и
Защищенные ключевые слова, проект стандарта C ++ не имеет понятия двоичного
инкапсуляция. Это потому, что модель компиляции C ++ требует
компилятор клиента, чтобы иметь доступ ко всей информации, касающейся
макет объекта для создания экземпляра класса или
делать невиртуальные вызовы методов. Это включает в себя информацию о размере
и порядок личных и защищенных членов данных объекта.
Для пояснения: синтаксическая инкапсуляция — это когда вы используете синтаксис языка для инкапсуляции. В C ++ это будут частные / защищенные ключевые слова.
Я нашел текст через эта тема который имеет краткое объяснение концепции, а также.
Редактировать:
Как указано ниже, в C ++ может существовать двоичная инкапсуляция. Увидеть эта вики-страница на непрозрачные указатели для получения дополнительной информации.
Других решений пока нет …