C++ Tutorial/Operator Overloading/overload plus subtract — различия между версиями
Admin (обсуждение | вклад) м (1 версия: Импорт контента...) |
(нет различий)
|
Текущая версия на 13:30, 25 мая 2010
operator+( ) function: Operator Overloading Using a Friend Function
<source lang="cpp">#include <iostream> using namespace std;
class loc {
int longitude, latitude;
public:
loc() {} // needed to construct temporaries loc(int lg, int lt) { longitude = lg; latitude = lt; } void show() { cout << longitude << " "; cout << latitude << "\n"; } friend loc operator+(loc op1, loc op2); // now a friend loc operator-(loc op2); loc operator=(loc op2); loc operator++();
};
// + is overloaded using friend function. loc operator+(loc op1, loc op2) {
loc temp; temp.longitude = op1.longitude + op2.longitude; temp.latitude = op1.latitude + op2.latitude; return temp;
}
// Overload - for loc. loc loc::operator-(loc op2) {
loc temp; // notice order of operands temp.longitude = longitude - op2.longitude; temp.latitude = latitude - op2.latitude; return temp;
}
// Overload assignment for loc. loc loc::operator=(loc op2) {
longitude = op2.longitude; latitude = op2.latitude; return *this; // i.e., return object that generated call
}
// Overload ++ for loc. loc loc::operator++() {
longitude++; latitude++; return *this;
}
int main() {
loc ob1(10, 20), ob2( 5, 30); ob1 = ob1 + ob2; ob1.show(); return 0;
}</source>