编写一个矩阵模版的问题

lovelyhawk lovelyhawk 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
template<class T>
class Matrix
{
public:
Matrix(int row,int column)
{
m_Row=row;
m_Column=column;
m_Head=new T[row*column];
}
T GetValue(int row,int column)
{
return m_Head[row*m_Column+column];
}

void Set(int row,int column,T value)
{
m_Head[row*m_Column+column]=value;
}

Matrix(const Matrix<T> &matrix)
{
m_Row=matrix.m_Row;
m_Column=matrix.m_Column;

m_Head=new T[m_Row*m_Column];

for(int i=0;i<m_Row*m_Column;i++)
m_Head[i]=matrix.m_Head[i];
}

int GetRow() const
{

return m_Row;
}

int GetColumn() const
{
return m_Column;
}

friend const Matrix<T> operator+(const Matrix<T> &matrix1,const Matrix<T> &matrix2);



virtual ~Matrix()
{
delete []m_Head;
}
private:

T *m_Head;
int m_Column;
int m_Row;
};

template<class T>
const Matrix<T> operator+(const Matrix<T> &matrix1,const Matrix<T> &matrix2)
{

if( matrix2.GetRow() == matrix1.GetRow() && matrix2.GetColumn() == matrix1.GetColumn())
{
Matrix<T> matrix(matrix1.GetRow(),matrix1.GetColumn());
for(int i; i<matrix2.GetRow(); i++)
{
for(int j=0; j<matrix2.GetColumn(); j++)
{
//int column=
T sum=matrix1.GetValue(i,j)+matrix2.GetValue(i,j);
matrix.Set(i,j,sum);

}
}

return matrix;

}
}



当我用到operator+ 的时候,编译不通过,怎么回事
...全文
评论 3
收藏 已收藏
分享
返回顶部
lovelyhawk
C++ 语言 65,214 成员 250,514 内容