Problem je što prethodna linija
Matrix A(); nije definicija novog primerka matrice, već deklaracija funkcije, tj.
A u liniji
cin >> A; je pokazivač na funkciju. Ispravka bi bila da staviš
Matrix A; i definišeš podrazumevani konstruktor za klasu.
Pored toga, ako onaj operator množenja nisi iz nekog posebnog razloga definisala tako, uobičajeno bi bilo nešto poput:
Code:
class Matrix {
...
friend const Matrix operator* (const Matrix &a, const Matrix &b)
{
return Matrix(a.X1 * b.X1 + a.X2 * b.Y1,
a.X1 * b.X2 + a.X2 * b.Y2,
a.Y1 * b.X1 + a.Y2 * b.Y1,
a.Y1 * b.X2 + a.Y2 * b.Y2);
}
...
};
Pazi i na linije u kojima je
det = 1, umesto toga treba
det == 1. Možda možeš da uključiš detaljna upozorenja u kompilatoru koji koristiš, tada bi trebalo da te upozori na slične slučajeve.