问题在于一个类可能会继承多个interface。所以不能随便用虚析构。否则delete 一个 interface 后别的 interface 也不能用了。微软故意设计成这样,delete 一个 interface 时就是要保证什么都不干。
为了解决析构问题,微软的 COM 实现了引用计数,只有确定所有的 interface 都不需要了之后才会调用析构函数。
【 在 z16166 的大作中提到: 】
: 所以这是个天坑啊
: 一般用虚接口的,谁还会再downcast成具体的子孙类的指针来delete
: MS不如自动给用__interface声明的东西加一个空的虚析构函数好了
: ...................
--
FROM 115.171.61.*