Mega Code Archive

 
Categories / C++ Tutorial / Class
 

Why Virtual Functions

#include <iostream>       using namespace std;          class Shape {     protected:       double x, y;     public:       void set_dim(double i, double j) {         x = i;         y = j;       }       virtual void show_area(void) {         cout << "No area computation defined ";         cout << "for this class.\n";       }     } ;             class triangle : public Shape {       public:         void show_area(void) {           cout << "Triangle with height ";           cout << x << " and base " << y;           cout << " has an area of ";           cout << x * 0.5 * y << ".\n";         }     };             class square : public Shape {       public:         void show_area(void) {           cout << "Square with dimensions ";           cout << x << "x" << y;           cout << " has an area of ";           cout << x *  y << ".\n";         }     };             main(void)     {       Shape *p;               triangle t;      square s;               p = &t;       p->set_dim(10.0, 5.0);       p->show_area();       p = &s;       p->set_dim(10.0, 5.0);       p->show_area();               return 0;     }