Write a program to show that virtual function implements dynamic binding.
Sep 2, 2019Source code:
//program that shows virtual function #include <iostream> using namespace std; //base class class Shape{ public: virtual void draw(){ cout<<"This is base class draw function."<<endl; } }; //child class triangle class Triangle: public Shape{ public: void draw(){ cout<<"Triangle is drawn here."<<endl; } }; //child class square class Square: public Shape{ public: void draw(){ cout<<"Square is drawn here."<<endl; } }; //child class Rectangle class Rectangle: public Shape{ public: void draw(){ cout<<"Rectangle is drawn here."<<endl; } }; int main(){ //pointer to base class Shape *base_ptr; Rectangle rec; Triangle tri; Square sqa; //sincle pointer of child is compatible to parent pointer base_ptr = &rec; base_ptr->draw(); base_ptr = &tri; base_ptr->draw(); base_ptr = &sqa; base_ptr->draw(); return 0; }
Sample run:
Rectangle is drawn here. Triangle is drawn here. Square is drawn here.