home *** CD-ROM | disk | FTP | other *** search
/ C Programming Starter Kit 2.0 / SamsPublishing-CProgrammingStarterKit-v2.0-Win31.iso / tybc4 / class4.cpp < prev    next >
C/C++ Source or Header  |  1993-03-31  |  1KB  |  42 lines

  1. // Program demonstrates virtual functions
  2.  
  3. #include <iostream.h>
  4.  
  5. class cSquare
  6. {
  7.   protected:
  8.     double length;
  9.  
  10.   public:
  11.     cSquare(double len) { length = len; }
  12.     double getLength() { return length; }
  13.     virtual double getWidth() { return length; }
  14.     double getArea() { return getLength() * getWidth(); }
  15. };
  16.  
  17. class cRectangle : public cSquare
  18.   protected:
  19.     double width;                              
  20.     
  21.   public:
  22.     cRectangle(double len, double wide) : 
  23.        cSquare(len), width(wide) {}           
  24.     virtual double getWidth() { return width; }
  25. };              
  26.  
  27. main()
  28. {
  29.    cSquare square(10);
  30.    cRectangle rectangle(10, 12);
  31.    
  32.    cout << "Square has length = " << square.getLength() << "\n"
  33.         << "       and area   = " << square.getArea() << "\n";
  34.    cout << "Rectangle has length = " 
  35.         << rectangle.getLength() << "\n"
  36.         << "          and width  = "
  37.         << rectangle.getWidth() << "\n"
  38.         << "          and area   = "
  39.         << rectangle.getArea() << "\n";
  40.    return 0;
  41. }