Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
一个简单的问题,但我不确定它在 C++ 中做了什么。
当我有一个有 _bstr_t 成员的类时。我想知道删除对象时是否释放了成员:
class A { _bstr_t foo("Testing"); }
该类A没有 dtor。那么默认的 dtor 是调用类的每个成员的 dtorA吗?
A
特别是对于 _bstr_t,因为它通过 SysAllocString 分配一个字符串。
谢谢
是的,_bstr_t析构函数会被调用——编译器会处理这个问题。即使它没有用户定义的析构函数,编译器也会发出代码,通过调用它们的析构函数来销毁所有完全构造的子对象。
_bstr_t
由于_bstr_t有一个重要的析构函数负责调用SysFreeString()该析构函数并将被调用并释放 BSTR。
SysFreeString()