Mega Code Archive

 
Categories / C++ / Class
 

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; }