Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <queue>
- using namespace std;
- class Point {
- private:
- int x, y;
- int niza[5];
- public:
- Point() {}
- Point(int _x, int _y) {
- x = _x;
- y = _y;
- }
- ~Point() {}
- void print() {
- cout << x << " " << y << endl;
- }
- Point operator + (Point p) {
- Point temp;
- temp.x = x + p.x;
- temp.y = y + p.y;
- return temp;
- }
- Point operator - (Point p) {
- Point temp;
- temp.x = x - p.x;
- temp.y = y - p.y;
- return temp;
- }
- Point operator * (Point p) {
- Point temp;
- temp.x = x * p.x;
- temp.y = y * p.y;
- return temp;
- }
- Point operator / (Point p) {
- Point temp;
- temp.x = x / p.x;
- temp.y = y / p.y;
- return temp;
- }
- bool operator < (Point p) {
- if(x < p.x and y < p.y) {
- return true;
- }
- return false;
- }
- bool operator > (Point p) {
- if(x > p.x and y > p.y) {
- return true;
- }
- return false;
- }
- bool operator <= (Point p) {
- if(x <= p.x and y <= p.y) {
- return true;
- }
- return false;
- }
- bool operator >= (Point p) {
- if(x >= p.x and y >= p.y) {
- return true;
- }
- return false;
- }
- bool operator == (Point p) {
- if(x == p.x and y == p.y) {
- return true;
- }
- return false;
- }
- bool operator != (Point p) {
- if(x == p.x and y == p.y) {
- return true;
- }
- return false;
- }
- Point& operator += (Point p) {
- x += p.x;
- y += p.y;
- return *this;
- }
- Point& operator -= (Point p) {
- x -= p.x;
- y -= p.y;
- return *this;
- }
- Point& operator *= (Point p) {
- x *= p.x;
- y *= p.y;
- return *this;
- }
- Point& operator /= (Point p) {
- x /= p.x;
- y /= p.y;
- return *this;
- }
- Point& operator ++ (int p) { //postfix
- x++;
- y++;
- return *this;
- }
- Point& operator ++ () { // prefix
- ++x;
- ++y;
- return *this;
- }
- Point& operator -- (int p) { //postfix
- x--;
- y--;
- return *this;
- }
- Point& operator -- () {
- --x;
- --y;
- return *this;
- }
- Point& operator = (Point p) {
- x = p.x;
- y = p.y;
- return *this;
- }
- void set_niza(int a[5], int n) {
- for(int i = 0; i < n; i++) {
- niza[i] = a[i];
- }
- }
- int& operator [] (int indeks) {
- return niza[indeks];
- }
- friend ostream& operator << (ostream &stream, Point p);
- friend istream& operator >> (istream &stream, Point &p);
- };
- ostream& operator << (ostream &stream, Point p) {
- stream << "X: " << p.x << endl;
- stream << "Y: " << p.y << endl;
- return stream;
- }
- istream& operator >> (istream &stream, Point &p) {
- stream >> p.x;
- stream >> p.y;
- return stream;
- }
- int main()
- {
- Point p1;
- cin >> p1;
- int a[5] = {1, 2, 3, 4, 5};
- p1.set_niza(a, 5);
- cout << p1[2] << endl;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement