State a runtime polymorphism example program in C++

(Last Updated On: February 26, 2019)

Answer includes runtime polymorphism example program in C++ OOPs and about virtual and pure virtual function in C++.

Example of run time polymorphism in C++ object oriented programming is function overriding where functions get resolved at run time i.e. when we execute the application. This is different than compile time polymorphism where function get resolved at compile time itself e.g. function overloading in C++ language and operator overloading.

When we override a function in CPP program, that function exists in base class and derived class both with same name and signature and depending upon the objects it gets resolved at run time from VTABLE and get executed. (I will describe VTABLE in another post, please stay tuned.)

In below example, class Files (base class) and PdfFiles (child class) both have same function i.e. download.

If we create object of derived class to base class pointer e.g. Files *f = new PdfFiles(); then download function of child class will be called.

Note that what function we want to override from a base class, we need to make that function virtual in base class.If we don’t write virtual and use the statement Files *f = new PdfFiles(); the base class function will be called and not from child class.

As a Conclusion two points should be noted to override a function in inheritance relationship in C++ program.

  • function name in both class should be same
  • The function in base class should be virtual.
C++ Program Example – function overriding ( Runtime polymorphism)
 

Output:

Download Pdf

As a next question, it was asked to write syntax of pure virtual function and why do we use it?

As a brief, syntax of pure virtual function is virtual void func() = 0; in C++ oops and it is use to create an interface and an abstract class C++ object oriented programming. Note that there is no interface keyword in C++ language as in C# or java.

You can read in detail about pure virtual function in C++ and how to use pure virtual function to create an interface in C++ and to create an abstract class with C++ program example.