关于模板和等号运算符重载
一个模板要写一个作为成员函数的=号运算符重载该怎么写? 要格式!求大神!
该类是这么定义的,你们懂得。。。。
class CMatrix
{
T * * Mat;
int nRow;
int nCol;
public:
CMatrix<T>();
CMatrix(int row,int col,int k);
CMatrix(int row,int col);
~CMatrix(){delete Mat;}
void Show();
void InputFromFile_int();
void InputFromFile_double();
friend CMatrix<T>&operator * (CMatrix<T>&mat1, CMatrix<T>&mat2);
CMatrix<T>operator = (CMatrix<T> &mat2);
};红色部分
[解决办法]
就这样写也行.
不过更规范点的话, 返回的应该是个引用, 参数要加 const.
<T> 可要可不要.
CMatrix& operator = (const CMatrix &mat2);
[解决办法]
template <typename T>
class CMatrix
{
T * * Mat;
int nRow;
int nCol;
public:
CMatrix(){};
CMatrix(int row,int col,int k);
CMatrix(int row,int col);
~CMatrix(){delete Mat;}
void Show();
void InputFromFile_int();
void InputFromFile_double();
friend CMatrix<T>&operator * (CMatrix<T>&mat1, CMatrix<T>&mat2);
CMatrix& operator = (const CMatrix &mat2);
};
template<class T>
CMatrix<T>& CMatrix<T>::operator= (const CMatrix<T> &mat)
{
for(int i=0;i<mat.nRow;i++)
for(int j=0;j<mat.nCol;j++)
Mat[nRow][nCol]=mat.Mat[nRow][nCol];
return *this;
}