0

簡単な質問ですが、C++ で何をしているのかわかりません。

_bstr_t メンバーを持つクラスがある場合。オブジェクトが削除されたときにメンバーが解放されるかどうかを知りたい:

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

クラスにはAdtor がありません。それで、クラスのyeachメンバーのdtorを呼び出すデフォルトのdtorAですか?

特に _bstr_t の場合は、SysAllocString を介して文字列を割り当てるためです。

ありがとう

4

1 に答える 1

5

はい、_bstr_tデストラクタが呼び出されます - コンパイラがそれを処理します。ユーザー定義のデストラクタがなくても、コンパイラはデストラクタを呼び出して完全に構築されたすべてのサブオブジェクトを破棄するコードを出力します。

_bstr_tそのデストラクタの呼び出しを処理する重要なデストラクタがあるためSysFreeString()、そのデストラクタが呼び出されて BSTR が解放されます。

于 2011-05-20T08:11:38.250 に答える