Trusted answers to developer questions
Trusted Answers to Developer Questions

Related Tags

communitycreator
virtual
abstract
c++

What does the virtual keyword do?

Hasham Ahmad

Virtual keyword

In C++, the virtual keyword is used to create a virtual function.

Virtual function

A virtual function is the member function of the class. This function is declared in the parent class and overridden by the child class. This is true when a pointer from a parent class points to a child class object.

Importance of a virtual function

  • Irrespective of the nature of the reference (or the pointer) that is used for a function call, virtual functions make sure that the right function is called for an object.
  • Runtime polymorphism is achieved by the virtual function.

Syntax

virtual returntype functionName(/*No of parameters*/)
{
  // body of function
}

Code example

#include<iostream>
using namespace std;
 
class parent {
public:
    virtual void virtualDisplayMessage()
    {
        cout << "Parnent class function virtual function."<<endl;
    }
 
    void simpleDisplayMessage()
    {
        cout << "Parent class simple function."<<endl;
    }
};
 
class child : public parent {
public:
    void virtualDisplayMessage()
    {
        cout << "Child class override virtual function. "<<endl;
    }
 
    void simpleDisplayMessage()
    {
        cout << "Child class simple function. "<<endl;
    }
};
 
int main()
{
   // declare class object
    parent *parentClassPointer; // make parent class pointer
    child childClassObject; // make dreived class object
    parentClassPointer = &childClassObject;// assign derived class object
    // calling class fucntions
    parentClassPointer->virtualDisplayMessage(); //  Runtime polymorphism is acheieved using virtual function
    parentClassPointer->simpleDisplayMessage(); // Non virtual function,
   
    return 0;
}
Implementation of the "virtual" function

Code explanation

  • Line 4: We create the class name parent.
  • Line 6: We implement a public virtual function called virtualDisplayMessage.
  • Line 11: We implement a non-virtual function called simpleDisplayMessage.
  • Line 17: We create the class name child and inherit it with the parent class.
  • Line 19: We override the virtual function virtualDisplayMessage.
  • Line 24: We implement a non-virtual function called simpleDisplayMessage.

Note: We don’t need the virtual keyword in the child class when we have a virtual function in the parent class that is being overridden in the child class. Functions are considered virtual functions in the child class.

RELATED TAGS

communitycreator
virtual
abstract
c++
RELATED COURSES

View all Courses

Keep Exploring