In this blog post, you will learn how to call a base class function from a derived class function in C++. The primary prerequisite to solving this problem is an understanding of inheritance. So here I assumed you have already an understanding of inheritance in C++.
So let’s get started with the problem statement.
Problem statement:How to call a parent class function from a derived class using C++? For example, suppose I have a class called Base, and a class called Derived that is derived from the Base class. In both classes, there is a function name display(). Now the problem is how do I call the display() of the Base class within the display() of the child class?
class Base
{
public:
void display()
{
}
};
class Derived:public Base
{
public:
void display()
{
//Want to call here base class display()
}
};
Solution:
In your case, display() is a public function, so if a function is defined in a base class and is not private then it is available in the derived class. You can call it in the derived class using the resolution operator (::).
Consider the below example code,
#include<iostream>
using namespace std;
class Base
{
public:
virtual void display()
{
cout << "I am from base class" << endl;
}
};
class Derived :public Base
{
public:
void display()
{
//calling base class function
Base::display();
}
};
int main()
{
//derive class object
Derived d;
//calling display function
d.display();
//Calling display function of parent class
// using derived class object
d.Base::display();
return 0;
}
Output:
I am from base class I am from base class