gpt4 book ai didi

c++ - C++中嵌套类和多重继承之间的内存布局区别?

转载 作者:太空狗 更新时间:2023-10-29 19:42:33 27 4
gpt4 key购买 nike

我试图了解 COM 如何指定其对象的布局,以便想要使用 COM 对象的客户知道如何去做。

我读到过实现多个接口(interface)的 COM 对象可以通过不同的方式实现,包括使用嵌套类或多重继承。

我的理解是,这两种技术都必须产生相同的内存布局(符合 COM 规范),以便想要使用 COM 对象(例如在 C 中)的客户端知道如何去做。

所以我的具体问题是:使用多重继承和嵌套类实现的 C++ 对象的内存布局是否存在差异。

有人可以指出 COM 对象布局的指定位置吗?

最佳答案

COM 完全不知道对象的内存布局。它想要和需要的只是调用 IUnknown::QueryInterface() 时的函数指针表。如何实现完全取决于您。 MFC 使用嵌套类,几乎所有其他东西都利用了 C++ 编译器中对多重继承的内置支持。 MSVC++ 编译器实现它的方式完全兼容 COM 的需要。这绝非偶然。使用您在有关 COM 的书籍中看到的样板代码,这些代码展示了如何正确实现 IUnknown。

关于c++ - C++中嵌套类和多重继承之间的内存布局区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4608924/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com