
- C++ Basics
- C++ Home
- C++ Overview
- C++ Environment Setup
- C++ Basic Syntax
- C++ Comments
- C++ Data Types
- C++ Variable Types
- C++ Variable Scope
- C++ Constants/Literals
- C++ Modifier Types
- C++ Storage Classes
- C++ Operators
- C++ Loop Types
- C++ Decision Making
- C++ Functions
- C++ Numbers
- C++ Arrays
- C++ Strings
- C++ Pointers
- C++ References
- C++ Date & Time
- C++ Basic Input/Output
- C++ Data Structures
- C++ Object Oriented
- C++ Classes & Objects
- C++ Inheritance
- C++ Overloading
- C++ Polymorphism
- C++ Abstraction
- C++ Encapsulation
- C++ Interfaces
Virtual Functions and Runtime Polymorphism in C++
Virtual functions in C++ use to create a list of base class pointers and call methods of any of the derived classes without even knowing kind of derived class object. Virtual functions are resolved late, at runtime.
The main use of virtual function is to achieve Runtime Polymorphism. Runtime polymorphism can be achieved only through a pointer (or reference) of base class type. Also, a base class pointer can point to the objects of base class as well as to the objects of derived class. In above code, base class pointer ‘b’ contains the address of object ‘d’ of derived class.
Example Code
#include<iostream> using namespace std; class B { public: virtual void s() { cout<<" In Base \n"; } }; class D: public B { public: void s() { cout<<"In Derived \n"; } }; int main(void) { D d; // An object of class D B *b= &d; // A pointer of type B* pointing to d b->s(); // prints "D::s() called" return 0; }
Output
In Derived
- Related Articles
- Difference between compile-time polymorphism and runtime polymorphism
- Runtime Polymorphism in Java
- What is the difference between compile time polymorphism and runtime polymorphism in java?
- Java Runtime Polymorphism with multilevel inheritance
- Dynamic method dispatch or Runtime polymorphism in Java
- What is runtime polymorphism or dynamic method overloading?
- Pure Virtual Functions and Abstract Classes in C++
- What are virtual functions in C#?
- Virtual functions in derived classes in C++
- How are virtual functions implemented in C++?
- Calling virtual functions inside constructors in C++
- What is the difference between virtual and abstract functions in C#?
- Can a C++ virtual functions have default parameters?
- What are Java methods equivalent to C# virtual functions?
- Polymorphism in Java

Advertisements