Untitled
unknown
plain_text
a year ago
2.7 kB
6
Indexable
#include <iostream> #include "point.h" int main() { // Create Point objects using the parameterized constructor Point start(5, 10); Point end(50, 100); Point newPoint(10, 10); newPoint = start - end; std::cout << newPoint.getX() << "," << newPoint.getY() << std::endl; newPoint = start - 10; std::cout << newPoint.getX() << "," << newPoint.getY() << std::endl; newPoint = 40 - start; std::cout << newPoint.getX() << "," << newPoint.getY() << std::endl; // Test relational operators std::cout << std::boolalpha; // Print bools as true/false std::cout << "start < end: " << (start < end) << std::endl; std::cout << "start > end: " << (start > end) << std::endl; std::cout << "start <= end: " << (start <= end) << std::endl; std::cout << "start >= end: " << (start >= end) << std::endl; std::cout << "start == end: " << (start == end) << std::endl; std::cout << "start != end: " << (start != end) << std::endl; return 0; } #include "point.h" // Constructor Point::Point(int x, int y) : x(x), y(y) {} // Getter methods int Point::getX() const { return x; } int Point::getY() const { return y; } // Operator overloads Point Point::operator-(const Point& rhs) const { return Point(this->x - rhs.x, this->y - rhs.y); } Point Point::operator-(int rhs) const { return Point(this->x - rhs, this->y - rhs); } Point operator-(int lhs, const Point& rhs) { return Point(lhs - rhs.x, lhs - rhs.y); } // Relational operators bool Point::operator<(const Point& rhs) const { return (this->x < rhs.x) || (this->x == rhs.x && this->y < rhs.y); } bool Point::operator>(const Point& rhs) const { return (this->x > rhs.x) || (this->x == rhs.x && this->y > rhs.y); } bool Point::operator<=(const Point& rhs) const { return !(*this > rhs); } bool Point::operator>=(const Point& rhs) const { return !(*this < rhs); } bool Point::operator==(const Point& rhs) const { return (this->x == rhs.x) && (this->y == rhs.y); } bool Point::operator!=(const Point& rhs) const { return !(*this == rhs); } #ifndef POINT_H #define POINT_H class Point { private: int x, y; public: Point(int x, int y); int getX() const; int getY() const; Point operator-(const Point& rhs) const; Point operator-(int rhs) const; friend Point operator-(int lhs, const Point& rhs); bool operator<(const Point& rhs) const; bool operator>(const Point& rhs) const; bool operator<=(const Point& rhs) const; bool operator>=(const Point& rhs) const; bool operator==(const Point& rhs) const; bool operator!=(const Point& rhs) const; }; #endif // POINT_H
Editor is loading...
Leave a Comment