所以我有一段代码,它将创建一个由我自己编写的数组对象。在一个转换语句中,我的讲师将选择他是想自己创建一个数组,还是生成一个随机数组。我的switch语句看起来像这样:
#include "MyArray.h"
MyArray::MyArray(): n(0)
{
}
MyArray::MyArray(int *t, int n) : n(n), this->t(new int[n])
{
memcpy(this->t, t, n * sizeof(int));
}
int MyArray::size() const
{
return n;
}
int *MyArray::get() const
{
return this->t;
}
MyArray::~MyArray()
{
std::cout << "DESTRUCTING" << '\n';
delete[] t;
}
MyArray::MyArray(const MyArray & obj)
{
n = obj.n;
t = new int[obj.n];
memcpy(t, obj.t, obj.n * sizeof(int));
}
MyArray& MyArray::operator=(const MyArray& obj)
{
if (this != &obj)
{
delete[] t;
n = obj.n;
t = new int[obj.n];
for (int i = 0; i<obj.n; i++)
t[i] = obj.t[i];
}
return *this;
}
不想发布整个代码,因为它不会好看,我只显示了对象的相关部分。所以最后的问题是,如何让它在没有内存泄漏的情况下工作?