Я пытаюсь готовиться к финалу, и я пытался собрать свой динамический конструктор копирования 2d массива.Когда я создал свою резервную копию и распечатал ее, чтобы увидеть, работает ли она, она печатает один и тот же адрес памяти, в который я верю снова и снова.Это мой конструктор копирования: Обновление, вот где я читаю данные из моего файла .txt
void Matrix::readTemps(ifstream &inFile)
{
while (!inFile.eof())
{
for (int row = 0; row < mnumRows; row++)
{
for (int col = 0; col < mnumCols; col++)
{
inFile >> Temps[row][col];
}
}
}
}
Matrix::Matrix(const Matrix & original)
{
mnumRows = original.mnumRows;
mnumCols = original.mnumCols;
Temps = new double*[mnumRows];
for (int row = 0; row < mnumRows; row++)
Temps[row] = new double[mnumCols];
}
Matrix& Matrix::operator=(const Matrix & second)
{
if (this != &second)
{
delete[] Temps;
mnumRows = second.mnumRows;
mnumCols = second.mnumCols;
Temps = new double*[second.mnumRows];
for (int row = 0; row < mnumRows; row++)
Temps[row] = new double[mnumCols];
}
return *this;
}
ОБНОВЛЕНИЕ, и это в моем main.cpp:
//Example of overloaded assignment operator.
Matrix TestMatrix;
TestMatrix = NYCTemps;
//Example of copy constructor.
Matrix copyOfMatrix(NYCTemps); // The traditional way to copy the phonebook.
NYCTemps.display();
copyOfMatrix.display();
cout << endl;
Я считаю, что мой перегрузочный оператор назначения также корректен, но я публикую его просто для того, чтобы подтвердить, что это хорошо от более умных умов.