0% found this document useful (0 votes)
4 views

hw11 OperatorsOverloading

Uploaded by

Andrew Vakuliuk
Copyright
© © All Rights Reserved
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
4 views

hw11 OperatorsOverloading

Uploaded by

Andrew Vakuliuk
Copyright
© © All Rights Reserved
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 3

### OperatorsOverloading

[[68.Class]]
#cppTasks

---
```cpp
//Overloading = == + -- ++ []
#include <iostream>
using namespace std;

class Point {
private:
int x;
int y;

public:
//Constructors
Point() {
x = 0;
y = 0;
}
Point(int x, int y) {
this->x = x;
this->y = y;
}

//Operator Overloading
Point operator + (const Point& other) {
Point temp;
temp.x = this->x + other.x;
temp.y = this->y + other.y;
return temp;
}
Point& operator ++ () {
x++;
y++;
return *this;
}
Point& operator ++ (int value) {
Point temp;
x++;
y++;
return temp;
}

//Set&Get&Print
void SetX(int x) {
this->x = x;
}
void SetY(int y) {
this->y = y;
}
int GetX() {
return x;
}
int GetY() {
return y;
}
void Print() {
cout << "X = " << x << "\t" << "Y = " << y << endl;
}
};

class PointArr {
private:
int size;
int* pointArr;

public:
//Constructors
PointArr(int size) {
this->size = size;
pointArr = new int[size];
for (int i = 0; i < size; i++) {
pointArr[i] = rand();
}
}
PointArr(const PointArr& other) {
this->size = other.size;
pointArr = new int[other.size];
for (int i = 0; i < other.size; i++) {
pointArr[i] = other.pointArr[i];
}
}

//OperatorOverloading
PointArr& operator = (const PointArr& other) {
if (pointArr != nullptr) {
delete[] pointArr;
}
this->size = other.size;
this->pointArr = new int[other.size];
for (int i = 0; i < other.size; i++) {
this->pointArr[i] = other.pointArr[i];
}
return *this;
}
bool operator == (const PointArr& other) {
if (this->size == other.size) {
for (int i = 0; i < size; i++) {
if (pointArr[i] != other.pointArr[i])
return false;
else
return true;
}
}
else return false;
}
int& operator [](int index) {
return pointArr[index];
}

//MemberFunctions
void PrintArr() {
for (int i = 0; i < size; i++) {
cout << pointArr[i] << "\t";
}
}
//Destructor
~PointArr() {
delete[] pointArr;
}
};

int main() {
Point A(3, 5);
Point B(10,20);
Point C(3443,2123);
Point D(1, 1);
C = ++A + B;
D++;

A.Print();
B.Print();
C.Print();
D.Print();

PointArr arrA(7);
PointArr arrB(10);

cout << arrA[5] << endl;

return 0;
}
```

You might also like