-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathIterator.cpp
More file actions
131 lines (126 loc) · 2.87 KB
/
Iterator.cpp
File metadata and controls
131 lines (126 loc) · 2.87 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
//
// Created by osher on 14/02/2022.
//
#include <iostream>
using namespace std;
class Integer {
int _i;
public:
Integer() {
_i = 0;
}
Integer(int i) {
_i = i;
}
Integer operator+(Integer i) const {
return Integer(_i + i._i);
}
Integer operator-(Integer i) const {
return Integer(_i - i._i);
}
Integer& operator=(Integer i) {
_i = i._i;
return *this;
}
bool operator==(Integer i) const {
return _i == i._i;
}
bool operator>(Integer i) const {
return _i > i._i;
}
bool operator<(Integer i) const {
return _i < i._i;
}
bool operator>=(Integer i) const {
return _i >= i._i;
}
bool operator<=(Integer i) const {
return _i <= i._i;
}
Integer& operator++() {
_i++;
return *this;
}
Integer& operator--() {
_i--;
return *this;
}
Integer operator++(int) {
Integer i;// = *this;
i._i = _i;
_i++;
return i;
}
Integer operator--(int) {
Integer i;// = *this;
i._i = _i;
_i--;
return i;
}
Integer& operator+=(Integer i) {
_i += i._i;
return *this;
}
Integer operator-=(Integer i) {
_i -= i._i;
return *this;
}
Integer operator*(Integer i) const {
return Integer(_i * i._i);
}
Integer operator/(Integer i) const {
return Integer(_i / i._i);
}
friend ostream& operator<<(ostream& out, Integer i);
friend Integer operator+(int i1, Integer i2);
friend Integer operator-(int i1, Integer i2);
friend Integer operator*(int i1, Integer i2);
friend Integer operator/(int i1, Integer i2);
friend bool operator==(int i1, Integer i2);
friend bool operator>(int i1, Integer i2);
friend bool operator<(int i1, Integer i2);
friend bool operator>=(int i1, Integer i2);
friend bool operator<=(int i1, Integer i2);
};
ostream &operator<<(ostream &out, Integer i) {
out << i._i;
return out;
}
Integer operator+(int i1, Integer i2) {
return Integer(i1 + i2._i);
}
Integer operator-(int i1, Integer i2) {
return Integer(i1 - i2._i);
}
Integer operator*(int i1, Integer i2) {
return Integer(i1 * i2._i);
}
Integer operator/(int i1, Integer i2) {
return Integer(i1 / i2._i);
}
bool operator==(int i1, Integer i2) {
return i1 == i2._i;
}
bool operator>(int i1, Integer i2) {
return i1 > i2._i;
}
bool operator<(int i1, Integer i2) {
return i1 < i2._i;
}
bool operator>=(int i1, Integer i2) {
return i1 >= i2._i;
}
bool operator<=(int i1, Integer i2) {
return i1 <= i2._i;
}
int main() {
Integer i1 = 10;
Integer i2 = 20;
i1 += i2;
Integer i4 = 3 * i2;
i1++;
cout << i1++ << endl;
cout << i2 + i1 << endl;
cout << i4 << endl;
cout << (21 >= i2 ? "true" : "false") << endl;
}