intの配列をディープコピーしたい。デストラクタを通過すると、アサーションエラー:_BLOCK_TYPE_IS_VALID(pHead-> nBlockUse)が発生します。私が言われたのは、そこにないものを削除しようとしているからです。私が正しい方向に進んでいて、何か小さなものを変更する必要がある場合、または私が完全に道に迷ってそれを知らない場合は、私に知らせてください。必要に応じてコードを追加できます。
答えてくれてありがとう。
.h
private:
int* _myArray;
int _size;
int _capacity;
.cpp
MyVector::MyVector()
{
_myArray = new int[2];
_size = 0;
_capacity = 2;
}
MyVector::MyVector(int aSize)
{
_myArray = new int[aSize];
_size = 0;
_capacity = aSize;
}
MyVector::~MyVector()
{
if(_myArray != NULL)
{
delete[] _myArray;
_myArray = NULL;
}
}
MyVector::MyVector(const MyVector& mVector)
{
_capacity = mVector._capacity;
_size = mVector._size;
// if(mVector._myArray)
// {
// _myArray = new int[_capacity];
// copy(mVector._myArray, mVector._myArray+_capacity, _myArray);
// }
}
MyVector& MyVector::operator=(MyVector& setterVect)
{
delete [] _myArray;
if(setterVect._myArray)
{
_myArray = new int[_capacity];
copy(setterVect._myArray, setterVect._myArray+_capacity, _myArray);
}
return *this;
}