C++中的二进制封装
Binary encapsulation in C++?
1) C++中的二进制封装
是什么,C++是否支持二进制封装?
我做了一些搜索,但我发现的只是封装,大致上只不过是将数据和方法包装在一个类中。
2)那么封装和二进制封装有什么区别?
这段文字中的一段话应该会澄清一些问题:
而C++确实通过其私有和 受保护的关键字,C++草案标准没有二进制概念 封装。这是因为C++的编译模型需要 客户端的编译器可以访问有关以下方面的所有信息 对象布局,以便实例化类的实例或 进行非虚拟方法调用。这包括有关大小的信息 以及对象的私有和受保护数据成员的顺序。
澄清一下:语法封装是指使用语言语法进行封装。在C++中,这将是私有/受保护的关键字。
我通过这个线程找到了文本,其中也对这个概念进行了简短的解释。
编辑:
如下所述,C++中可能存在二进制封装。有关详细信息,请参阅此 wiki 页面 关于不透明指针。
- 有两种类型的封装语法封装和二进制封装。
- C++ 不支持二进制 Encapsulation.It 仅支持语法封装。
- COM 支持二进制封装。
- 二进制封装的最佳示例是COM的QueryInterface(void **)方法。
- 由于此方法将一个输出参数作为 void **。所以它是双重重定向,因为指针是无效的**。
- 要获得有关此内容的更多详细信息,请阅读Don Bix的Inside COM内容。
相关文章:
- 将成员变量添加到共享库中的类中,不会破坏二进制兼容性吗
- 有根的二进制搜索树.保留与其父级的链接
- 为什么在没有显式默认构造函数的情况下,将另一个结构封装在联合中作为成员的结构不能编译
- 多态二进制函数
- 正在读取二进制文件(is_open)
- visual在c++中将十进制数转换为二进制数
- C++十进制到二进制,如何转换
- cpp二进制搜索问题,计算给定数组中输入元素的出现次数
- 二进制搜索树叶数问题
- 如何将一个ostringstream十六进制字符串字符对转换为单个unit8t等价的二进制值
- 为什么二进制搜索在我的测试中不起作用
- 重载==不适用于二进制树
- 正在尝试重载二进制搜索树分配运算符
- 在C++中将类(带有Vector成员)保存为二进制文件
- 如何从二进制文件中读取字符串
- 使用不同的CRT将新的C++代码与旧的(二进制)组件隔离开来的最佳方法是什么
- 带有数组键C++的二进制映射
- 如何将二进制格式的 C++ 对象的 std::vector 保存到磁盘?
- C++中的二进制封装
- 如果 C++ 中的 DLL 不支持二进制封装,那么何时可以使用它们?