C++中的二进制封装

Binary encapsulation in C++?

本文关键字:封装 二进制 C++      更新时间:2023-10-16
1) C++中的二进制封装

是什么,C++是否支持二进制封装?

我做了一些搜索,但我发现的只是封装,大致上只不过是将数据和方法包装在一个类中。

2)那么封装和二进制封装有什么区别?

这段文字中的一段话应该会澄清一些问题:

而C++确实通过其私有和 受保护的关键字,C++草案标准没有二进制概念 封装。这是因为C++的编译模型需要 客户端的编译器可以访问有关以下方面的所有信息 对象布局,以便实例化类的实例或 进行非虚拟方法调用。这包括有关大小的信息 以及对象的私有和受保护数据成员的顺序。

澄清一下:语法封装是指使用语言语法进行封装。在C++中,这将是私有/受保护的关键字。

我通过这个线程找到了文本,其中也对这个概念进行了简短的解释。

编辑:

如下所述,C++中可能存在二进制封装。有关详细信息,请参阅此 wiki 页面 关于不透明指针。

  1. 有两种类型的封装语法封装和二进制封装。
  2. C++ 不支持二进制 Encapsulation.It 仅支持语法封装。
  3. COM 支持二进制封装。
  4. 二进制封装的最佳示例是COM的QueryInterface(void **)方法。
  5. 由于此方法将一个输出参数作为 void **。所以它是双重重定向,因为指针是无效的**。
  6. 要获得有关此内容的更多详细信息,请阅读Don Bix的Inside COM内容。