Change the object pointer behaviour : object pointer « Class « C++






Change the object pointer behaviour

  
#include <iostream>
using namespace std;
class convert 
{
 protected:
   double val1;
   double val2;
 public:
   convert(double i)
    {
      val1 = i;
    }
    double getconv(void) {return val2;}
    double getinit(void) {return val1;}
    virtual void compute(void) = 0;
};

class l_to_g : public convert {
 public:
   l_to_g(double i) : convert(i) { }
   void compute(void)
    {
      val2 = val1 / 3.7854;
    }
};


class f_to_c : public convert {
 public:
   f_to_c(double i) : convert(i) { }
   void compute(void)
    {
      val2 = (val1 - 32) / 1.8;
    }
};

int main(void)
{
   convert *p;                   

   l_to_g lgob(4);
   f_to_c fcob(70);

   p = &lgob;                    
   cout << p->getinit() << " liters is ";
   p->compute();
   cout << p->getconv() << " gallons." << endl;

   p = &fcob;                    
   cout << p->getinit() << " in Fahrenheit is ";
   p->compute();
   cout << p->getconv() << " Celsius." << endl;
}
  
    
  








Related examples in the same category

1.Use object pointer to reference virtual method
2.Use & to get object address
3.Call virtual function through object pointer
4.Using an array of class objects
5.Use dynamic_cast to convert object pointer to its subclass
6.Need reinterpret cast to perform pointer conversion from unrelated classes
7.Need reinterpret_cast to go from pointer to int and from int to pointer
8.Need reinterpret cast to perform reference conversion from unrelated classes -- static_cast doesn't work
9.Declare object pointer
10.pointers to base class
11.Demonstrating the class member access operators . and ->