#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); // binary minus
MyClass operator-(); // unary minus
};
MyClass MyClass::operator-(MyClass object2)
{
MyClass temp;
temp.x = x - object2.x;
temp.y = y - object2.y;
return temp;
}
// Overload unary - for MyClass class.
MyClass MyClass::operator-()
{
x = -x;
y = -y;
return *this;
}
int main()
{
MyClass object1(10, 10), object2(5, 7);
int x, y;
object1 = object1 - object2; // subtraction
object1.getXY(x, y);
cout << "(object1-object2) X: " << x << ", Y: " << y << endl;
object1 = -object1; // negation
object1.getXY(x, y);
cout << "(-object1) X: " << x << ", Y: " << y << endl;
return 0;
}
|