CosmicFox33

07.03

Mar 7th, 2022
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.48 KB | None | 0 0
  1.  
  2. /*Разработать класс «2-мерный вектор», конструктор(ы) для инициализации, перегруженные операторы << и >> потокового ввода/вывода,
  3. перегруженную операцию ~ вычисления длины вектора как метода (функцию-член класса), перегруженную операцию –= вычитания одного
  4. вектора из другого (функцию-друг класса). В функции main организовать тестирование всех возможностей разработанного класса.
  5. */
  6.  
  7. #include <iostream>
  8. #include <math.h>
  9.  
  10. using namespace std;
  11.  
  12. class Vector
  13. {
  14. private:
  15.     float x, y;
  16. public:
  17.     Vector() { x = 0., y = 0.; }
  18.     Vector(float X, float Y) { x = X; y = Y; }
  19.     friend istream& operator >> (istream& s, Vector& a);
  20.     friend ostream& operator << (ostream& s, Vector& a);
  21.     float operator~ () { return sqrt(x * x + y * y); }
  22.     friend Vector& operator-=(Vector& A, Vector& B) { A.x -= B.x; A.y -= B.y; return A; }
  23.  
  24.  
  25. };
  26. istream& operator >> (istream& s, Vector& a) { return s >> a.x >> a.y; }
  27. ostream& operator << (ostream& s, Vector& a) { return s << "(" << a.x << "," << a.y << ")" << endl; }
  28.  
  29.  
  30. int main()
  31. {
  32.     Vector a, b(1., 1.);
  33.     cout << a;
  34.     cout << b;
  35.     cin >> a;
  36.     cout << a;
  37.     cout << ~b << endl;
  38.     cout << (a-=b);
  39.  
  40.  
  41. }
  42.  
  43.  
Add Comment
Please, Sign In to add comment