[ antonija @ 18.09.2004. 13:34 ] @
Pozdrav! Ja imam problem sa sledecim zadatkom: #include <iostream> using namespace std; class Matrix { private: int X1, X2, Y1, Y2; public: Matrix(int x1, int x2, int y1, int y2) { int det = x1 * y2 - x2 * y1; if (det != 1) { cout << "Matrica ne pripada modularnoj grupi! " << endl; exit(1); } else { X1 = x1; X2 = x2; Y1 = y1; Y2 = y2; }; }; int DajX1() { return X1; }; int DajX2() { return X2; }; int DajY1() { return Y1; }; int DajY2() { return Y2; }; int* operator*(const Matrix &a) { int* b; *b = X1 * a.X1 + X2 * a.Y1; *(b+1) = X1 * a.X2 + X2 * a.Y2; *(b+2) = Y1 * a.X1 + Y2 * a.Y1; *(b+3) = Y1 * a.X2 + Y2 * a.Y2; return b; }; }; ostream& operator<<(ostream& os, Matrix a) { int det = a.DajX1()*a.DajY2()-a.DajX2()*a.DajY1(); if ( det = 1) { return os << "{ { " << a.DajX1() << "," << a.DajX2() << "} { " << a.DajY1() << "," << a.DajY2() << "} }"; } else { cout << "Matrica ne pripada modularnoj grupi! " << endl; exit(1); }; }; istream& operator>>(istream &is, Matrix &a) { if (!is) return is; int x_1, x_2, y_1, y_2, det; is >> x_1 >> x_2 >> y_1 >> y_2; det = x_1*y_2-x_2*y_1; if (!(det = 1)) { is.clear(ios::failbit); return is; } else { a = Matrix(x_1, x_2, y_1, y_2); return is; }; }; int main() { Matrix A(); cin >> A; Matrix M(2, 1, 1, 1); Matrix N(6, 5, 1, 1); cout << M << endl; cout << N << endl; cout << *M.operator*(N) << endl; return 0; } Kompajler mi javlja gresku kod dela koda:cin >> A. Mozete li mi reci zasto?Hvala unapred! |