Yurttas/PL/OOL/Cplusplus/F/03/02/00/01.html

programming languages - design principles, implementation constructs
c++

  1. abstraction mechanisms: classes and operator overloading
    1. operator overloading
      1. basic rules -
        • operator functions - example

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