私のクラスには、次の名前のポインターメンバーの汎用配列がありますA
。
T** A
現在、次の方法でデストラクタの配列を削除します。
~MyQuickInitArray(){
delete [] A;
};
これによりメモリリークが発生しますか? もしそうなら、配列を反復処理してdelete
各オブジェクトを呼び出す必要がありますか?
余談ですが、整数の配列であるか、デストラクタが既にそれを処理しているかdelete [] B
を呼び出す必要がありますか?B
編集:
割り当ては次のように行われます。
MyQuickInitArray(int size)
{
if(size <= 0)
{
throw new std::exception;
}
_size = size;
_counter = 0;
A = new T*[size];
B = new int[size];
C = new int[size];
}
MyQuickInitArray(const MyQuickInitArray& myQuickInitArray)
{
_size = myQuickInitArray._size;
_counter = myQuickInitArray._counter;
A = new T*[_size];
for(int i = 0; i<_size ;i++)
{
if(myQuickInitArray.A[i] != NULL)
{
A[i] = new T(*myQuickInitArray.A[i]);
}
}
B = myQuickInitArray.B;
C = myQuickInitArray.C;
}