Witam mam kawałek kodu:
Macierz Macierz::operator*(const Macierz& B) const
{
int s;
double tab_tmp[Wiersze()][Kolumny()];
Macierz c(Wiersze(), Kolumny());
for(int i=0;i<Wiersze();i++)
for(int j=0;j<Kolumny();j++){
s = 0;
for(int k=0;k<2;k++) //TODO
s=s+Pobierz(i,k) * B.Pobierz(k,j);
tab_tmp[i][j]=s;
c.Ustaw(tab_tmp[i][j],i,j);
}
return c;
}
Który jest odpowiedzialny za mnożenie macierzy i tu rodzi się mój problem bo o ile w przypadku dodawania macierze A i B muszą być takie same to tu jest np konfiguracja 3x2 * 2x3 i nie wiem jak zrobić żeby wynikiem była macierz 3x3 chciałem dodać takie coś:
Macierz C[A.Wiersze()][B.Kolumny()];
ale przy mnożeniu
C= A * B
wywala błąd incompatible types in assignment of 'Macierz' to 'Macierz [(((sizetype)<anonymous>) + 1)][(((sizetype)<anonymous>) + 1)]' jeśli nie podam wielkości macierzy tylko automatycznie stworzy w przypadku Macierz C = A * B
działa tak jak opisałem wcześniej czyli tworzy macierz wielkości macierzy A.
Komórka
, a nieMacierz
.