dr. salih yurttas - yurttas@cs.tamu.edu
programming languages - design principles, implementation constructs
c++

  1. abstraction mechanisms: classes and operator overloading
    1. class/object construction - 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
computer science | texas a&m university

Valid XHTML 1.0 Transitional