Bruce Eckel's Thinking in C++, 2nd Ed | Contents | Prev | Next |
//: C12:Opover.cpp // Operator overloading syntax #include <iostream> using namespace std; class Integer { int i; public: Integer(int ii) { i = ii; } const Integer operator+(const Integer& rv) const { cout << "operator+" << endl; return Integer(i + rv.i); } Integer& operator+=(const Integer& rv){ cout << "operator+=" << endl; i += rv.i; return *this; } }; int main() { cout << "built-in types:" << endl; int i = 1, j = 2, k = 3; k += i + j; cout << "user-defined types:" << endl; Integer I(1), J(2), K(3); K += I + J; } ///:~