vfunc_ex.cpp
Upload User: dq031136
Upload Date: 2022-08-08
Package Size: 802k
Code Size: 1k
Development Platform:

C++ Builder

  1. #include <iostream.h>
  2. class convert 
  3. {
  4.  protected:
  5.    double val1;
  6.    double val2;
  7.  public:
  8.    convert(double i)
  9.     {
  10.       val1 = i;
  11.     }
  12.     double getconv(void) {return val2;}
  13.     double getinit(void) {return val1;}
  14.     virtual void compute(void) = 0;
  15.  };
  16. // liters to gallons
  17. class l_to_g : public convert {
  18.  public:
  19.    l_to_g(double i) : convert(i) { }
  20.    void compute(void)
  21.     {
  22.       val2 = val1 / 3.7854;
  23.     }
  24.  };
  25. // Fahrenheit to Celsius
  26. class f_to_c : public convert {
  27.  public:
  28.    f_to_c(double i) : convert(i) { }
  29.    void compute(void)
  30.     {
  31.       val2 = (val1 - 32) / 1.8;
  32.     }
  33.  };
  34. void main(void)
  35.  {
  36.    convert *p;                    // pointer to base class
  37.    l_to_g lgob(4);
  38.    f_to_c fcob(70);
  39.    p = &lgob;                    // convert liters to gallons
  40.    cout << p->getinit() << " liters is ";
  41.    p->compute();
  42.    cout << p->getconv() << " gallons." << endl;
  43.    p = &fcob;                    // convert fahrenheit to celsius
  44.    cout << p->getinit() << " in Fahrenheit is ";
  45.    p->compute();
  46.    cout << p->getconv() << " Celsius." << endl;
  47.  }