在switch语句中构造一个对象

时间:2017-03-03 08:47:36

标签: c++ memory

所以我有一段代码,它将创建一个由我自己编写的数组对象。在一个转换语句中,我的讲师将选择他是想自己创建一个数组,还是生成一个随机数组。我的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;
}

不想发布整个代码,因为它不会好看,我只显示了对象的相关部分。所以最后的问题是,如何让它在没有内存泄漏的情况下工作?

0 个答案:

没有答案