Advertisement
ratnikova_veronika

Дополнительное задание 5 (дополнительная часть)

Apr 25th, 2019
102
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.00 KB | None | 0 0
  1. using namespace std;
  2. template <typename T>
  3. class Class_mat
  4. {
  5. protected:
  6.     T a, b, c , d;
  7. public:
  8.     Class_mat()
  9.     {
  10.         a = 1;
  11.         b = 2;
  12.         c = 3;
  13.         d = 4;
  14.     };
  15.     Class_mat(T x, T y, T z, T v)
  16.     {
  17.         a = x;
  18.         b = y;
  19.         c = z;
  20.         d = v;
  21.     };
  22.     Class_mat ( const Class_mat &obj)
  23.     {
  24.         a = obj.a;
  25.         b = obj.b;
  26.         c = obj.c;
  27.         d = obj.d;
  28.     };
  29.     Class_mat operator = (const Class_mat &obj)
  30.     {
  31.         a = obj.a;
  32.         b = obj.b;
  33.         c = obj.c;
  34.         d = obj.d;
  35.         return obj;
  36.     };
  37.     void det()
  38.     {
  39.         cout << "Определитель матрицы равен " << a * d - c * b;
  40.     };
  41.     //Перегруженный оператор *
  42. Class_mat operator * (const Class_mat &obj) const
  43.     {
  44.         Class_mat a;
  45.         a.a = this -> a * obj.a;
  46.         a.b = this -> b * obj.b;
  47.         a.c = this -> c * obj.c;
  48.         a.d = this -> d * obj.d;
  49.         return a;
  50.     };
  51.  
  52. //Перегруженный оператор +
  53. Class_mat operator + (const Class_mat &obj)
  54.     {
  55.         Class_mat a;
  56.         a.a = this -> a + obj.a;
  57.         a.b = this -> b + obj.b;
  58.         a.c = this -> c + obj.c;
  59.         a.d = this -> d + obj.d;
  60.         return a;
  61.     };
  62.  
  63. //Перегруженный оператор *=
  64. Class_mat operator *= (const Class_mat &obj)
  65.     {
  66.         Class_mat a;
  67.         a.a = this -> a *= obj.a;
  68.         a.b = this -> b *= obj.b;
  69.         a.c = this -> c *= obj.c;
  70.         a.d = this -> d *= obj.d;
  71.         return a;
  72.     };
  73.  
  74. //Перегруженный оператор +=
  75. Class_mat operator += (const Class_mat &obj)
  76.     {
  77.         Class_mat a;
  78.         a.a = this -> a += obj.a;
  79.         a.b = this -> b += obj.b;
  80.         a.c = this -> c += obj.c;
  81.         a.d = this -> d += obj.d;
  82.         return a;
  83.     };
  84.  
  85. //Перегруженный оператор *
  86. Class_mat operator * (const T p) const
  87.     {
  88.         Class_mat a;
  89.         a.a = this -> a * p;
  90.         a.b = this -> b * p;
  91.         a.c = this -> c * p;
  92.         a.d = this -> d * p;
  93.         return a;
  94.     };
  95.  
  96. //Перегруженный оператор *=
  97. Class_mat operator *= (const T p)
  98.     {
  99.         Class_mat a;
  100.         a.a = this -> a *= p;
  101.         a.b = this -> b *= p;
  102.         a.c = this -> c *= p;
  103.         a.d = this -> d *= p;
  104.         return a;
  105.     };
  106.  
  107. //Перегруженный оператор *
  108.  friend Class_mat operator * (T p, const Class_mat &obj)
  109.     {
  110.         Class_mat a;
  111.         a.a = p * obj.a;
  112.         a.b = p * obj.b;
  113.         a.c = p * obj.c;
  114.         a.d = p * obj.d;
  115.         return a;
  116.  
  117.     };
  118.  friend std::ostream& operator<<(std::ostream &output, const Class_mat &obj)
  119.  {
  120.      output << "Коэффициент a = " << obj.a << endl << "Коэффициент b = " << obj.b << endl << "Коэффициент c = " << obj.c << endl << "Коэффициент d = " << obj.d << endl << endl;
  121.      return output;
  122.  };
  123.  
  124. ~Class_mat ()
  125. {
  126. };
  127. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement