C++/Overload/Divide

Материал из C\C++ эксперт
Перейти к: навигация, поиск

Overload the * and / relative to MyClass class.

<source lang="cpp">

  1. 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">

  1. 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>