2

deletestruct へのポインタを ing しますfoo:

struct foo
{
    bar * baz;
};

構造体を指すbaz:

struct baz
{
    int arr;
};

またdelete、/ が指すメモリを解放しbazますか?

4

2 に答える 2

4

いいえ。削除はこのように「カスケード」しません。

ただし、 のデストラクタがある場合は、そのデストラクタ内でfoo実行できdelete bazます。

于 2012-05-29T00:27:06.120 に答える
3

いいえ。foo のインスタンスを削除する前に、手動で baz を削除する必要があります。ほとんどの典型的な開発者は、foo delete baz のデストラクタを持っています。

struct foo
{
    bar * baz;
    ~foo()
    {
        delete baz;
    }
};
于 2012-05-29T00:27:12.460 に答える