在重新分配CreateInstance之前需要释放com_ptr_t吗?

fit*_*itz 1 c++ smart-pointers createinstance

在具有_com_ptr_t成员的C++类中,如果在同一指针上重复使用CreateInstance()以获取COM对象的新实例,而不首先执行Release(),则内存是否会泄漏?有充分证据表明,当其中一个智能指针超出范围时,ref计数会减少,而当封装指针是Detach()时则不会减少.MSDN似乎没有提到重复CreateInstance()时引用计数的含义.

sha*_*oth 5

因为没有泄漏发生_com_ptr_t调用Release()开头的CreateInstance(),你可以很容易地通过阅读验证自己_com_ptr_t的实现.