This is the problem:
Given the following class that does dynamic allocation, add the destructor, a copy constructor, and an overloaded assignment operator to the class. Write a test program which verifies that your assignment operator and copy constructor correctly duplicate the dynamic memory contained in an object of the class.

This is what I have:



.h file

Code:
#pragma once 

class Matrix 
{ 
private: 
double *matrix; 
int rows, cols; 

public: 
Matrix(int r = 10, int c = 10); 
~Matrix(); //destructor 
Matrix(const Matrix& MatrixTwo); //Copy constructor 
const Matrix& operator=(const Matrix&); //overloading operator 

void getDataFromUser( ); 
void displayToConsole( ) const; 
void setElement(int r, int c, double v); 
double getElement(int r, int c); 
};
implementation file
Code:
#include <iostream> 
#include "Matrix.h" 
using namespace std; 

Matrix::Matrix(int r, int c) 
{ 
rows = r; 
cols = c; 
matrix = new double[r * c]; 
} 

void Matrix::getDataFromUser( ) 
{ 
for(int i = 0; i < rows; i++) 
{ 
cout << "Input " << cols << " values for row " << i << endl; 
for(int j = 0; j < cols; j++) 
{ 
cin >> matrix[i * cols + j]; 
} 
cout << endl; 
} 
} 

void Matrix::displayToConsole( ) const 
{ 
cout << endl; 
for(int i = 0; i < rows; i++) 
{ 
for(int j = 0; j < cols; j++) 
{ 
cout << matrix[i * cols + j] << " "; 
} 
cout << endl; 
} 
cout << endl; 
} 

void Matrix::setElement(int r, int c, double v) 
{ 
matrix[r * cols + c] = v; 
} 

double Matrix::getElement(int r, int c) 
{ 
return matrix[r * cols + c]; 
} 
Matrix::~Matrix() //destructor 
{ 
delete [] matrix; 
} 
Matrix::Matrix(const Matrix& MatrixTwo) //copy 
{ 
rows = MatrixTwo.rows; 
cols = MatrixTwo.cols; 
matrix = new double[rows]; 
for(int i=0; i < cols; i++) 
matrix[i] = MatrixTwo.matrix[i]; 
} 
const Matrix& Matrix::operator=(const Matrix& MatrixTwo)//overloader 
{ 

if(this != &MatrixTwo) //avoid self-assignment 
{ 

} 
//return the object that was assigned to 
return *this; 
}
Test file, main- not really sure what to do here
Code:
#include <iostream> 
#include "Matrix.h" 

using namespace std; 

void test(Matrix temp); 

int main() 
{ 
Matrix listOne; 

int r; 
int c; 

cout << "Enter integers:" << endl; 
for(r=0; r<10; r++) 
{ 
cin >> c; 
} 

cout << "listOne:" << listOne; 

cout << endl; 

Matrix listTwo(listOne); 

cout << "listTwo: " << listTwo; 
cout << endl; 
test(listOne) << listOne; 
cout << endl; 

return 0; 
} 

void test(Matrix temp) 
{ 
cout << "Test" << endl << temp; 
cout << endl; 
}
Thanks!