Yurttas/PL/OOL/Cplusplus/F/03/02/00/01.html
programming languages - design principles, implementation constructs
c++
- abstraction mechanisms: classes and operator overloading
- operator overloading
- basic rules -
- operator functions - example
- basic rules -
- operator overloading
class Complex {
public:
Complex(const double r,
const double i) {
re = r;
im = i;
}
Complex& operator+=(const Complex& a) {
re += a.re;
im += a.im;
return *this;
}
friend Complex operator+(const Complex& a,
const Complex& b) {
return Complex(a.re+b.re,
a.im+b.im);
}
private:
double re,
im;
};
void f(const Complex& a,
const Complex& b) {
Complex p = a + b; // short hand
Complex q = a.operator+(b); // oo way
Complex r = operator+(a,b); // explicit call
}
1 | basic facilities << 3 >> class derivation | 5 | 6 | 7 | 8