-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
В любом случае, ваш дизайн совершенно неэффективен. Может быть, вам все равно, что нужно делать сложные вещи, необходимые для реальной эффективности. Но, по крайней мере, делайте тривиальные вещи, чтобы избежать избыточной неэффективности: подпись должна быть «матричной матрицей :: operator * (matrix const & x) const' – JSF