-4
这段代码显示了我运行时的地址,而不是两个矩阵的乘法。通过运算符重载的矩阵乘法
matrix matrix:: operator *(matrix x)
{
matrix c(m1,n2);
c.m=c.n=m;
for(int i=0;i<m1;i++)
{
for(int j=0;j<n2;j++)
{
c.a[i][j]=0;
for(int k=0;k<n1;k++)
{
c.a[i][j]+=(a[i][k]*x.a[k][j]);
}
}
}
return c;
}
此代码不输出任何。请详细说明发生了什么,并提供[mcve] – NathanOliver
什么是m1和n2?我希望你打算'm'和'x.n',那么矩阵的构造函数应该设置'c.m'和'c.n',这样你就不想立即打开它们。 – JSF
无论如何,你的设计效率很低。也许你不在乎做真正有效的工作。但至少要做一些小事以避免过度低效:签名应该是矩阵矩阵::运算符*(矩阵常量&x)常量 – JSF