Lecture - Virtual Function
Lecture - Virtual Function
PROGRAMMING
VIRTUAL FUNCTIONS
class Shape {. // Abstract class
protected:
float dimension;
public:
4
void getDimension() {
cin >> dimension;}
virtual float calculateArea() = 0; }; // pure virtual Function
class Square : public Shape {
public:
float calculateArea() {
return dimension * dimension; }};
class Circle : public Shape {
public:
float calculateArea() {
return 3.14 * dimension * dimension; }};
int main() {
Square square;
Circle circle;
cout << "Enter the length of the square: ";
square.getDimension();
cout << "Area of square: " << square.calculateArea() << endl;
cout << "\nEnter radius of the circle: ";
circle.getDimension();
cout << "Area of circle: " << circle.calculateArea() << endl;
return 0;}
class Add{
public:
virtual void print ()
{ int a=20, b=30;
5 " base class Action is:"<<a+b <<endl; }
cout<<
void show ()
{ cout<< "show base class" <<endl; }
};
class Sub: public Add {
public:
void print ()
{ int x=20,y=10;
cout<< " derived class Action:"<<x-y <<endl; }
void show ()
{ cout<< "show derived class" <<endl; } };
int main() {
Add *aptr;
Sub s;
aptr = &s;
//virtual function, binded at runtime (Runtime polymorphism)
aptr->print();
bptr->print();
bptr->show();
return 0;
}
9 VIRTUAL FUNCTION