In object-oriented programming, we have class, and class has two things member functions or data members.
Function Overriding is defined as redefining the base
class function in a derived
class with the same name, parameters, and return type.
In function overriding, the overridden function in the parent class is referred to as the overriding function
. The overriding function in the child class is referred to as the overriding function
.
If the function is not a member function of the class, we cannot access that function with the help of class objects.
Note: Only the functions that the derived class inherited from the base class can be overridden.
Let’s understand this concept with the help of a scenario.
If the base
class has a public
member function, say, myfunc
, then we can override the member function myfunc
in the’ derived’ class.
But if the base
class has a private
member function, say, myfunc1
, then the derived class cannot override the member function myfunc1
.
#include <iostream>using namespace std;class base{private:void myfun1(){cout<<" Parent class private member function "<<endl;}public:void myfun(){cout<<"Parent class public member function"<<endl;}};class derived: public base{public:void myfun(){cout<<"Child class public member function"<<endl;}};int main() {derived dri;// create drived class objectdri.myfun();return 0;}
Line 3 : We create base
class.
Line 6: We create private
member function myfunc1
.
Line 12: We create public
member function myfunc
.
Line 18: We create drived
class and inherit it with the base class.
Line 21: We create public
member function myfunc
and overridden it.
Lines 29 and 30: We create a derived
class object and call it myfunc
.