amarek

OOP LV2 - Zadatak2

Nov 11th, 2019
140
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.58 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. class Vector {
  6. private:
  7.     int mI;
  8.     int mJ;
  9.     int mK;
  10. public:
  11.     Vector();
  12.     Vector(int, int, int);
  13.     ~Vector();
  14.     Vector& operator= (const Vector&);
  15.     friend Vector operator+ (const Vector& lhs, const Vector& rhs);
  16.     friend bool operator== (const Vector&, const Vector&);
  17.     friend ostream& operator<< (ostream&, const Vector&);
  18. };
  19.  
  20. Vector::Vector() : mI(0), mJ(0), mK(0) {}
  21.  
  22. Vector::Vector(int i, int j, int k) : mI(i), mJ(j), mK(k) {}
  23.  
  24. Vector::~Vector() {}
  25.  
  26. Vector& Vector::operator=(const Vector& Ref)
  27. {
  28.     if (&Ref == this) return *this;
  29.     this->mI = Ref.mI;
  30.     this->mJ = Ref.mJ;
  31.     this->mK = Ref.mK;
  32.  
  33.     return *this;
  34. }
  35.  
  36. Vector operator+ (const Vector& lhs, const Vector& rhs)
  37. {
  38.     return Vector(lhs.mI + rhs.mI, lhs.mJ + rhs.mJ, lhs.mK + rhs.mK);
  39. }
  40.  
  41. bool operator== (const Vector& lhs, const Vector& rhs)
  42. {
  43.     return lhs.mI == rhs.mI && lhs.mJ == rhs.mJ && lhs.mK == rhs.mK;
  44. }
  45.  
  46. ostream& operator<< (ostream& OutputStream, const Vector& rhs)
  47. {
  48.     OutputStream << rhs.mI << "i";
  49.     if (rhs.mJ >= 0)
  50.     {
  51.         OutputStream << "+";
  52.     }
  53.     OutputStream << rhs.mJ << "j";
  54.     if (rhs.mK >= 0)
  55.     {
  56.         OutputStream << "+";
  57.     }
  58.     OutputStream << rhs.mK << "k";
  59.  
  60.     return OutputStream;
  61. }
  62.  
  63.  
  64. int main() {
  65.     Vector *A, *B;
  66.     A = new Vector (4, 5, 3);
  67.     B = new Vector (4, 5, 3);
  68.     Vector C = *A;
  69.     Vector D = *B;
  70.  
  71.     cout << (C + D) << endl;
  72.  
  73.     if (C == D) {
  74.         cout << "Vectors are same!" << endl;
  75.     }
  76.  
  77.     return 0;
  78. }
Advertisement
Add Comment
Please, Sign In to add comment