C++ 我收到一个错误,类型为‘;矩阵<;int>*’;和‘;int’;到二进制‘;操作员*’;

C++ 我收到一个错误,类型为‘;矩阵<;int>*’;和‘;int’;到二进制‘;操作员*’;,c++,operator-overloading,class-template,C++,Operator Overloading,Class Template,我正在尝试使用类模板进行标量乘法 这是我的操作数 template <class T> Matrix<T> Matrix<T> :: operator*(T &scalar){ Matrix result(row,cols,0.0); unsigned i,j; for (i = 0; i < row; i++) { for (j = 0; j < cols; j++) { result(i,j) = thi

我正在尝试使用类模板进行标量乘法 这是我的操作数

template <class T>
Matrix<T> Matrix<T> :: operator*(T &scalar){
Matrix result(row,cols,0.0);
unsigned i,j;
for (i = 0; i < row; i++)
{
    for (j = 0; j < cols; j++)
    {
        result(i,j) = this->matrix[i][j]* scalar;
    }
}
return result;
}
模板
矩阵:算子*(T和标量){
矩阵结果(行,列,0.0);
无符号i,j;
对于(i=0;i矩阵[i][j]*标量;
}
}
返回结果;
}
这是我的主要任务

Matrix<int> *m1 = new Matrix<int>();
Matrix<int> *m2 = new Matrix<int>(5,5 ,7); //meaning 5x5 all matris value = 7
Matrix<int> *m3 = new Matrix<int>(5,5,'e');//meaning 5x5 unit matrix
Matrix<int> *m4 = new Matrix<int>(3,3,'r');//meaning 3x3 random value matrix
m3=m3*2;
矩阵*m1=新矩阵();
矩阵*m2=新矩阵(5,5,7)//表示5x5所有矩阵值=7
矩阵*m3=新矩阵(5,5,'e')//表示5x5单位矩阵
矩阵*m4=新矩阵(3,3,'r')//意义3x3随机值矩阵
m3=m3*2;
所以我犯了个错误

invalid operands of types ‘Matrix<int>*’ and ‘int’ to binary ‘operator*’
类型为“Matrix*”和“int”到二进制“operator*”的操作数无效

您需要提供一个。作为一个新用户,也需要阅读。总之,问题是你用C++编写java或C代码。请阅读一本好的C++教程,特别注意使用<代码>新<代码>,或者更确切地说,缺少它!为什么要使用动态内存分配<代码>矩阵*m3=新矩阵(5,5,'e')->
矩阵m3=矩阵(5,5,'e')你的问题就会解决。我必须使用动态内存分配。这是家庭作业,他们想要它:(