-1
class A{
public:
A():p(nullptr){};
private:
std::unique_ptr<B> p; // B is some class
};
Aのオブジェクトが有効範囲外になると、pで消費されるメモリ領域が自動的に削除されます。クラスがスマートポインタだけで構成されていてもデストラクタをdelclare/defineする必要がありますか?
明示的に以下のようにデストラクタを記述する必要がありますか?
~A(){
delete p;
}
これは冗長ですか?
'ptr'は宣言されていません。 'p'を意味するなら、' p'は生のポインタではありません。 – aschepler
私はそれをデバッグしました:-9 – mallea