I'm trying to overload the operators + and +=, however, I'm getting many errors that I have no idea about.. consider the following code:

Code:
CMatrix CMatrix::operator+ (const CMatrix &mxToAdd)
{
	if (m_pdMatrixData == NULL) return NULL;
	if (mxToAdd.GetRows() != m_iDimension[0]) return NULL;
	if (mxToAdd.GetColumns() != m_iDimension[1]) return NULL;
	// Error Checking;

	CMatrix mxReturnMatrix(m_iDimension[0], m_iDimension[1]);
           
	for (int i = 0; i < m_iDimension[0]; i++)
	{
		for (int ii = 0; ii < m_iDimension[1]; ii++)
		{
			double dSetValue = m_pdMatrixData[i][ii] + mxToAdd.GetSingle(i, ii);
			mxReturnMatrix.SetSingle(i, ii, dSetValue);
		}
	}
	return mxReturnMatrix;
};


void CMatrix::operator+= (const CMatrix &mxToAdd)
{
	if (m_pdMatrixData == NULL) return;
	if (mxToAdd.GetRows() != m_iDimension[0]) return;
	if (mxToAdd.GetColumns() != m_iDimension[1]) return;

	for (int i = 0; i < m_iDimension[0]; i++)
	{
		for (int ii = 0; ii < m_iDimension[1]; ii++)
		{
			m_pdMatrixData[i][ii] += mxToAdd.GetSingle(i, ii);
		}
	}
}
This is the correct syntax, is it not? Here are the errors:

C:\Documents and Settings\Administrator\Desktop\CMatrix.cpp(247) : error C2664: '__thiscall CMatrix::CMatrix(const class CMatrix &)' : cannot convert parameter 1 from 'const int' to 'const class CMatrix &'
Reason: cannot convert from 'const int' to 'const class CMatrix'
No constructor could take the source type, or constructor overload resolution was ambiguous
C:\Documents and Settings\Administrator\Desktop\CMatrix.cpp(248) : error C2662: 'GetRows' : cannot convert 'this' pointer from 'const class CMatrix' to 'class CMatrix &'
Conversion loses qualifiers
C:\Documents and Settings\Administrator\Desktop\CMatrix.cpp(248) : error C2664: '__thiscall CMatrix::CMatrix(const class CMatrix &)' : cannot convert parameter 1 from 'const int' to 'const class CMatrix &'
Reason: cannot convert from 'const int' to 'const class CMatrix'
No constructor could take the source type, or constructor overload resolution was ambiguous
C:\Documents and Settings\Administrator\Desktop\CMatrix.cpp(249) : error C2662: 'GetColumns' : cannot convert 'this' pointer from 'const class CMatrix' to 'class CMatrix &'
Conversion loses qualifiers
C:\Documents and Settings\Administrator\Desktop\CMatrix.cpp(249) : error C2664: '__thiscall CMatrix::CMatrix(const class CMatrix &)' : cannot convert parameter 1 from 'const int' to 'const class CMatrix &'
Reason: cannot convert from 'const int' to 'const class CMatrix'
No constructor could take the source type, or constructor overload resolution was ambiguous
C:\Documents and Settings\Administrator\Desktop\CMatrix.cpp(258) : error C2662: 'GetSingle' : cannot convert 'this' pointer from 'const class CMatrix' to 'class CMatrix &'
Conversion loses qualifiers
C:\Documents and Settings\Administrator\Desktop\CMatrix.cpp(269) : error C2662: 'GetRows' : cannot convert 'this' pointer from 'const class CMatrix' to 'class CMatrix &'
Conversion loses qualifiers
C:\Documents and Settings\Administrator\Desktop\CMatrix.cpp(270) : error C2662: 'GetColumns' : cannot convert 'this' pointer from 'const class CMatrix' to 'class CMatrix &'
Conversion loses qualifiers
C:\Documents and Settings\Administrator\Desktop\CMatrix.cpp(276) : error C2662: 'GetSingle' : cannot convert 'this' pointer from 'const class CMatrix' to 'class CMatrix &'
Conversion loses qualifiers