I'm _attempting_ to overload the assignment operator so I can safely set one object equal to another.

Here's my code for the operator overloading:

I get the following error:Code:const Matrix Matrix::operator=(const Matrix &temp) { if(this == &temp) return *this; // to prevent bad things from happening.. int x; int y; int r = temp.numR(); int c = temp.numC(); for(x = 0; x < r; x++) { for(y = 0; y < c; y++) { Array[x][y] = temp.Array[x][y]; } } return *this; }

matrix.cpp: In member function `const Matrix Matrix:perator=(const Matrix&)':

matrix.cpp:307: passing `const Matrix' as `this' argument of `int Matrix::numR()' discards qualifiers

matrix.cpp:308: passing `const Matrix' as `this' argument of `int Matrix::numC()' discards qualifiers

All of the examples of overloading = say that the declaration should be like so:

const Matrix &Matrix:perator=(const Matrix &temp)

but that further complicates my program, since I don't declare my objects on the heap. What to do about that if it really matters?

And here is the rest of the code for reference:

http://dydx.no-ip.com:8080/matrix.cpp

http://dydx.no-ip.com:8080/matrix.h

Thanks all!