C++/Overload/Divide
Overload the * and / relative to MyClass class.
<source lang="cpp">
- include <iostream>
using namespace std; class MyClass {
int x, y;
public:
MyClass() { x=0; y=0; } MyClass(int i, int j) { x=i; y=j; } void getXY(int &i, int &j) { i=x; j=y; } MyClass operator*(MyClass object2); MyClass operator/(MyClass object2);
}; // Overload * relative to MyClass class. MyClass MyClass::operator*(MyClass object2) {
MyClass temp; temp.x = x * object2.x; temp.y = y * object2.y; return temp;
} // Overload / relative to MyClass class. MyClass MyClass::operator/(MyClass object2) {
MyClass temp; temp.x = x / object2.x; temp.y = y / object2.y; return temp;
} int main() {
MyClass object1(10, 10), object2(5, 3), object3; int x, y; object3 = object1 * object2; object3.getXY(x, y); cout << "(object1*object2) X: " << x << ", Y: " << y << endl; object3 = object1 / object2; object3.getXY(x, y); cout << "(object1/object2) X: " << x << ", Y: " << y << endl; return 0;
}
</source>
Overload the - and / relative to MyClass class using friend functions.
<source lang="cpp">
- include <iostream>
using namespace std; class MyClass {
int x, y;
public:
MyClass() { x=0; y=0; } MyClass(int i, int j) { x=i; y=j; } void getXY(int &i, int &j) { i=x; j=y; } friend MyClass operator-(MyClass object1, MyClass object2); friend MyClass operator/(MyClass object1, MyClass object2);
}; // Overload - relative to MyClass class using friend. MyClass operator-(MyClass object1, MyClass object2) {
MyClass temp; temp.x = object1.x - object2.x; temp.y = object1.y - object2.y; return temp;
} // Overload / relative to MyClass class using friend. MyClass operator/(MyClass object1, MyClass object2) {
MyClass temp; temp.x = object1.x / object2.x; temp.y = object1.y / object2.y; return temp;
} int main() {
MyClass object1(10, 10), object2(5, 3), object3; int x, y; object3 = object1 - object2; object3.getXY(x, y); cout << "(object1-object2) X: " << x << ", Y: " << y << endl; object3 = object1 / object2; object3.getXY(x, y); cout << "(object1/object2) X: " << x << ", Y: " << y << endl; return 0;
}
</source>