读书人

请问把接口类的析构函数设置成虚函数

发布时间: 2012-11-04 10:42:42 作者: rapoo

请教,把接口类的析构函数设置成虚函数会破坏接口类的编译器独立性,这句话怎么理解
在看com本质论,这一节看了几遍还没看懂,书上说把接口类的析构函数设置成虚函数会破坏接口类编译器的独立性,这是因为不同编译器种,虚析构函数在虚表中的位置不同。
请问
1:在不同的编译器中,其他虚函数在虚表中的位置就相同吗?
2:不同的编译器,对象的内存布局应该也不会相同吧,这会不会影响接口类的编译器独立性?


[解决办法]
虚析构函数是编译器相关的东西,不同编译器实现不同。

COM得避免依赖编译器相关的东西。
[解决办法]

探讨
C++标准应该没有规定虚指针的位置吧,那这个就是跟编译器的实现相关的,深度探索C++对象模型上也说是跟编译器相关的。在COM里为什么这里可以和编译器实现相关。

读书人网 >C++

热点推荐