返回后删除指针

时间:2018-06-03 19:29:24

标签: c++ pointers

Matrix * Matrix::transpose()
{

    Matrix *m = new Matrix(*this->numCols, *this->numRows, false);

    for (int i = 0; i < *this->numRows; i++)
    {
        for (int j = 0; j < *this->numCols; j++)
        {
            m->setValue(j, i, this->getValue(i, j));
        }
    }

    return m;
}

大家好。移位基质后我的记忆力不断增加。如何通过删除返回的m(如何操作?)或删除此 - &gt; ~Matrix()来解决这个问题?

1 个答案:

答案 0 :(得分:2)

只是不要使用任何指针。这里没有理由使用new。只是做

Matrix Matrix::transpose()
{

    Matrix m {*this->numCols, *this->numRows, false};

    for (int i = 0; i < *this->numRows; i++)
    {
        for (int j = 0; j < *this->numCols; j++)
        {
            m.setValue(j, i, this->getValue(i, j));
        }
    }

    return m;
}

另外一件事,为什么你到处放this?如果你想澄清一些东西是一个成员,只需加上前缀/后缀,如m_memberNamemMemberNamememberName_