3

私のc++クラスメンバーには次のものがあります:

char array[24];

デストラクタでこのメンバーをどうするか、それとも何もないかもしれません。アドバイスをありがとう。

4

2 に答える 2

5

何もない。アレイにスペースを手動で割り当てることはないため、手動で解放しないでください。

于 2013-03-21T05:40:28.277 に答える
1

割り当て/割り当て解除は、(malloc/new などを使用して) フリーストアで構築されたオブジェクトに適用されます。クラス内の配列は、クラスのオブジェクトと同じ寿命を持ちます。したがって、メンバーではなくオブジェクトの割り当て/割り当て解除の処理に注意する必要があります (メンバーがポインターでない場合)。

メンバ変数がポインタであり、動的に割り当てられたメモリ/オブジェクトを指している場合は、(できればデストラクタで) 割り当てを解除する必要があります。

例えば:

class A { };

class B {

    A* a;

    B() { 
        a = new A;
    }

    ~B() { 
        delete a; 
    }
};
于 2013-03-21T05:50:27.733 に答える