override ==, !=

main
Alexis Drai 2 years ago
parent a4b41d173e
commit 3117003744

@ -16,5 +16,13 @@ int main()
p1 += p2; p1 += p2;
cout << p1 << endl; cout << p1 << endl;
cout << (p1 == p2) << endl;
cout << (p1 != p2) << endl;
p1 = Position(4, 1);
cout << (p1 == p2) << endl;
cout << (p1 != p2) << endl;
return 0; return 0;
} }

@ -18,8 +18,8 @@ std::ostream &operator<<(ostream &os, const Position &pos)
Position &Position::operator+=(const Position &rhs) Position &Position::operator+=(const Position &rhs)
{ {
this->m_x_pos += rhs.m_x_pos; m_x_pos += rhs.m_x_pos;
this->m_y_pos += rhs.m_y_pos; m_y_pos += rhs.m_y_pos;
return *this; return *this;
} }
@ -28,3 +28,14 @@ Position operator+(Position lhs, const Position &rhs)
lhs += rhs; lhs += rhs;
return lhs; return lhs;
} }
bool Position::operator==(const Position &rhs) const
{
return m_x_pos == rhs.m_x_pos
&& m_y_pos == rhs.m_y_pos;
}
bool Position::operator!=(const Position &rhs) const
{
return !(*this == rhs);
}

@ -14,9 +14,16 @@ private:
int m_x_pos, m_y_pos; int m_x_pos, m_y_pos;
public: public:
explicit Position(int x_pos, int y_pos); explicit Position(int x_pos, int y_pos);
Position& operator+=(const Position& rhs);
friend Position operator+(Position lhs, const Position& rhs); bool operator==(const Position &rhs) const;
friend std::ostream& operator<<(std::ostream& os, const Position& pos);
bool operator!=(const Position &rhs) const;
Position &operator+=(const Position &rhs);
friend Position operator+(Position lhs, const Position &rhs);
friend std::ostream &operator<<(std::ostream &os, const Position &pos);
}; };

Loading…
Cancel
Save