home *** CD-ROM | disk | FTP | other *** search
- //: C12:Opover.cpp
- // From Thinking in C++, 2nd Edition
- // Available at http://www.BruceEckel.com
- // (c) Bruce Eckel 1999
- // Copyright notice in Copyright.txt
- // 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;
- } ///:~
-