удаление указателя после возврата - PullRequest
0 голосов
/ 03 июня 2018
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 (как это сделать?) Или удалив this-> ~ Matrix ()?

1 Ответ

0 голосов
/ 03 июня 2018

Только не используйте указатели.Нет смысла использовать 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_memberName, mMemberName или memberName_.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...