一个简单的问题,但是我不确定用C ++做什么。

当我有一个具有_bstr_t成员的类时。
我想知道删除对象时是否释放成员:

class A {
    _bstr_t foo("Testing");
}


A类没有dtor。那么默认dtor是否调用类A的yeach成员的dtor?

特别是对于_bstr_t,因为它通过SysAllocString分配了一个字符串。

谢谢

最佳答案

是的,将调用_bstr_t析构函数-编译器会进行处理。即使它没有用户定义的析构函数,编译器也会通过调用其析构函数来发出破坏所有完全构造的子对象的代码。

由于_bstr_t具有一个非平凡的析构函数,该析构函数负责调用SysFreeString(),因此将调用该析构函数并释放BSTR。

关于c++ - c++ dtor释放_bstr_t内存,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6069152/

10-12 16:10