Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using namespace std;
- template <typename T>
- class Class_mat
- {
- protected:
- T a, b, c , d;
- public:
- Class_mat()
- {
- a = 1;
- b = 2;
- c = 3;
- d = 4;
- };
- Class_mat(T x, T y, T z, T v)
- {
- a = x;
- b = y;
- c = z;
- d = v;
- };
- Class_mat ( const Class_mat &obj)
- {
- a = obj.a;
- b = obj.b;
- c = obj.c;
- d = obj.d;
- };
- Class_mat operator = (const Class_mat &obj)
- {
- a = obj.a;
- b = obj.b;
- c = obj.c;
- d = obj.d;
- return obj;
- };
- void det()
- {
- cout << "Определитель матрицы равен " << a * d - c * b;
- };
- //Перегруженный оператор *
- Class_mat operator * (const Class_mat &obj) const
- {
- Class_mat a;
- a.a = this -> a * obj.a;
- a.b = this -> b * obj.b;
- a.c = this -> c * obj.c;
- a.d = this -> d * obj.d;
- return a;
- };
- //Перегруженный оператор +
- Class_mat operator + (const Class_mat &obj)
- {
- Class_mat a;
- a.a = this -> a + obj.a;
- a.b = this -> b + obj.b;
- a.c = this -> c + obj.c;
- a.d = this -> d + obj.d;
- return a;
- };
- //Перегруженный оператор *=
- Class_mat operator *= (const Class_mat &obj)
- {
- Class_mat a;
- a.a = this -> a *= obj.a;
- a.b = this -> b *= obj.b;
- a.c = this -> c *= obj.c;
- a.d = this -> d *= obj.d;
- return a;
- };
- //Перегруженный оператор +=
- Class_mat operator += (const Class_mat &obj)
- {
- Class_mat a;
- a.a = this -> a += obj.a;
- a.b = this -> b += obj.b;
- a.c = this -> c += obj.c;
- a.d = this -> d += obj.d;
- return a;
- };
- //Перегруженный оператор *
- Class_mat operator * (const T p) const
- {
- Class_mat a;
- a.a = this -> a * p;
- a.b = this -> b * p;
- a.c = this -> c * p;
- a.d = this -> d * p;
- return a;
- };
- //Перегруженный оператор *=
- Class_mat operator *= (const T p)
- {
- Class_mat a;
- a.a = this -> a *= p;
- a.b = this -> b *= p;
- a.c = this -> c *= p;
- a.d = this -> d *= p;
- return a;
- };
- //Перегруженный оператор *
- friend Class_mat operator * (T p, const Class_mat &obj)
- {
- Class_mat a;
- a.a = p * obj.a;
- a.b = p * obj.b;
- a.c = p * obj.c;
- a.d = p * obj.d;
- return a;
- };
- friend std::ostream& operator<<(std::ostream &output, const Class_mat &obj)
- {
- output << "Коэффициент a = " << obj.a << endl << "Коэффициент b = " << obj.b << endl << "Коэффициент c = " << obj.c << endl << "Коэффициент d = " << obj.d << endl << endl;
- return output;
- };
- ~Class_mat ()
- {
- };
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement