EDUCBA

EDUCBA

MENUMENU
  • Free Tutorials
  • Free Courses
  • Certification Courses
  • 600+ Courses All in One Bundle
  • Login

Function Overriding in C++

Home » Software Development » Software Development Tutorials » C ++ Programming Tutorial » Function Overriding in C++

Function Overriding in C++

Introduction to Function Overriding in C++

Function override is the concept of object-oriented programming language, suppose we have one method in a parent class and we are overriding that method in the child class with the same signature i.e. same method name, the same number of parameter and return type. We have provided our own implementation to this method specific to the child class, so we can say that the method can implement in two different classes.

Syntax

Start Your Free Software Development Course

Web development, programming languages, Software testing & others

public class Parent{
access_modifier:
return_type method_name(){}
};
}
public class child : public Parent {
access_modifier:
return_type method_name(){}
};
}

In the above syntax we have one parent class and one child class, here child class is derived from the parent class which means the child can use all the functionality and properties which are present in the parent class. Let’s see one example for more understanding,

Example:

public class AnimalDemo{
public :
void foodForAnimal(){
cout<<"this method is going to have different implementation according to the food animal eat. So by override this method into the child class we can provide implementation accordingly.";
};
}
public class Cat: public AnimalDemo{
public:
void foodForAnimal(){
cout<<"Cat drink milk. This method is specific to this class.";
}
}

So in the above example, there can be various types of animals we have with different types of food they prefer so we can override this method can provide implementation according to animal food. But the method signature has to be the same. We can also pass parameter in it, these parameters also need to be exact in number like parent class.

How Function Overriding works in C++?

If we want to implement function overriding into our program first we need to have some kind of relation between two classes because we cannot implement function overriding within the same class, if we implement then it would be function overloading. So for function overriding we should have inheritance between two class i.e. parent and child relation.

But the question arises why we use function overriding?

The main reason behind this we can provide specific implementation to our method which is specific to that class. Function overriding can be achieved at runtime because which method will get call will be determined at runtime only. We can use parent class reference to call methods also. There is some case which shows which class method will get invoke according to the object created:

Popular Course in this category
C++ Training (4 Courses, 5 Projects, 4 Quizzes)4 Online Courses | 5 Hands-on Projects | 37+ Hours | Verifiable Certificate of Completion | Lifetime Access | 4 Quizzes with Solutions
4.5 (4,837 ratings)
Course Price

View Course

Related Courses
Java Training (40 Courses, 29 Projects, 4 Quizzes)C Programming Training (3 Courses, 5 Project)
  1. Parent d = Child();:: In this case, the child class method will get a call because the parent class reference holding instance of the child class. But if the method does not present in the child class then the parent class method will get executed.
  2. Child c = Child();:: In this case also child class methods will get preference because it is holding the
  3. Child c = Parent();:: This is wrong we can do this compile-time error will get occur.

We have bind method call to its body then it is called binding. We have static and dynamic bindings.

Rule:

  • There has to be a parent-child relationship between two classes.
  • The method signature has to be matched. we cannot change the method name, method parameters or the return type everything has to be the same as the parent class signature.
  • We can do the overriding method in child class only and ca provide a different implementation.
  • In C++ we can also override the parent class member with the same signature they have in the class.
  • We cannot override the static, private and final methods, because there scope limited to the class itself.
  • We cannot even change the access of method while overriding from a parent class.
  • Same in the case of return type also, we cannot change this too.

There is some advantage of method overriding which are mentioned below:

Suppose we have a parent class with so many children. But in the child class, they want to provide their own implementation of one single method so in that case function overriding is the choice. With function override, we can provide a different implementation of the same method without changing the code of parent class. For instance, we can take the example of the Bank with different rates of Interest they provide. The interest of banks varies from bank to bank.

So the bank is the parent class here and all the branches are a child for this with rateOfInterest() as the overriding method which provides the rate of interest detail to users.

Examples of Function Overriding in C++

Below are the examples of function overriding in C++:

Example #1

Code:

#include <iostream>
using namespace std;
class Parent {
public:
void m1(){
cout<<"This is the parent class method";
}
};
class Child: public Parent
{
public:
void m1()
{
cout<<"This is the child class method ";
}
};
int main(void) {
Child c = Child();
c.m1();
Parent p = Parent();
p.m1();
return 0;
}

Output:

function overriding C++ Example1

Example #2

Code:

#include <iostream>
using namespace std;
class BankMain {
public:
int rate(int rate )
{
return  rate;
}
};
class ICIC: public BankMain
{
public:
int rate(int rate )
{
return  rate;
}
};
class HDFC: public BankMain
{
public:
int rate(int rate )
{
return  rate;
}
};
class STND: public BankMain
{
public:
int rate(int rate )
{
return  rate;
}
};
class AMEX: public BankMain
{
public:
int rate(int rate )
{
return  rate;
}
};
int main(void) {
ICIC c = ICIC();
int icici = c.rate(10);
cout<<"Interest rate for icici bank is " << icici << "\n";
HDFC h = HDFC();
int hdfc = h.rate(20);
cout<<"Interest rate for hdfc bank is " << hdfc<< "\n";
STND s = STND();
int stnd = s.rate(50);
cout<<"Interest rate for stbd bank is " << stnd<< "\n";
AMEX a = AMEX();
int amex = a.rate(80);
cout<<"Interest rate for amex bank is " << amex<< "\n";
BankMain p = BankMain();
p.rate(4);
return 0;
}

Output:

function overriding C++ Example2

Conclusion

So function overriding increases the code readability also make it easy to maintain. We do not need to modify the code of parent class or any other dependent child classes it is totally independent and easy to use.

Recommended Articles

This is a guide to Function Overriding in C++. Here we discuss the basic concept, syntax,  examples and how Function Overriding works in C++? You can also go through our other suggested articles to learn more –

  1. Overriding in C#
  2. C++ Algorithm
  3. C++ Data Types
  4. Type Casting in C++

C++ Training (4 Courses, 3 Projects, 4 Quizzes)

4 Online Courses

5 Hands-on Projects

37+ Hours

Verifiable Certificate of Completion

Lifetime Access

4 Quizzes with Solutions

Learn More

0 Shares
Share
Tweet
Share
Primary Sidebar
C plus plus Programming Tutorial
  • Overloading and overriding
    • Overloading and Overriding in C++
    • Overloading in C++
    • Overriding in C++
    • Function Overloading in C++
    • Function Overriding in C++
    • Method Overloading in C++
  • Basic
    • Introduction To C++
    • What is C++
    • Features of C++
    • Applications of C++
    • Best C++ Compiler
    • C++ Data Types
    • C++ Double
    • C++ unsigned int
    • User Defined Data Types in C++
    • Variables in C++
    • C++ Keywords
    • Pointers in C++
    • C++ Void Pointer
    • Function Pointer in C++
    • Iterator in C++
    • C++ Commands
    • Object in C++
    • C++ Literals
    • C++ Reference
    • C++ Undefined Reference
    • String in C++
    • C++ Programming Language (Basics)
    • C++ Identifiers
    • C++ Header Files
    • Type Casting in C++
    • C++ Formatter
  • Operators
    • C++ Operators
    • Arithmetic Operators in C++
    • Assignment Operators in C++
    • Bitwise Operators in C++
    • Relational Operators in C++
    • Boolean Operators in C++
    • Unary Operators in C++
    • C++ Operator[]
    • Operator Precedence in C++
    • C++ operator=()
  • Control Statements
    • Control Statement in C++
    • if else Statement in C++
    • Else If in C++
    • Nested if in C++
    • Continue Statement in C++
    • Break Statement in C++
    • Switch Statement in C++
    • goto Statement in C++
    • C++ Struct
    • Loops in C++
    • Do While Loop in C++
    • Nested Loop in C++
  • Functions
    • C++ String Functions
    • Math Functions in C++
    • Friend Function in C++
    • Recursive Function in C++
    • Virtual Functions in C++
    • strcat() in C++
    • swap() in C++
    • strcmp() in C++
    • ceil function in C++
    • C++ begin()
    • size() in C++
    • C++ test()
    • C++ any()
    • C++ Bitset
    • C++ find()
    • C++?Aggregation
    • C++?String append
    • C++ String Copy
    • C++ end()
    • C++ endl
    • C++ push_back
    • C++ shuffle()
    • malloc() in C++
    • C++ reserve()
    • C++ unique()
    • C++ sort()
    • C++ find_if()
    • Reflection in C++
    • C++ replace()
    • C++ search()
    • C++ Memset
    • C++ size_t
    • C++ Substring
    • C++ Max
    • C++ absolute value
    • C++ memcpy
    • C++ wchar_t
    • C++ free()
    • C++ sizeof()
    • C++ Move Semantics
  • Array
    • Arrays in C++
    • 2D Arrays in C++
    • 3D Arrays in C++
    • Multi-Dimensional Arrays in C++
    • C++ Array Functions
    • String Array in C++
    • C++ Length of Array
    • C++ arraylist
  • Constuctor and Destructor
    • Constructor and Destructor in C++
    • Constructor in C++
    • Destructor in C++
    • Copy Constructor in C++
    • Parameterized Constructor in C++
  • Inhertiance
    • Types of Inheritance in C++
    • Single Inheritance in C++
    • Multiple Inheritance in C++
    • Hierarchical Inheritance in C++
    • Multilevel Inheritance in C++
    • Hybrid Inheritance in C++
  • Sorting
    • Sorting in C++ 
    • Heap Sort in C++
    • C++ Vector Sort
    • Insertion Sort in C++
    • Selection Sort in C++
  • Advanced
    • C++ namespace
    • Encapsulation in C++
    • Access Modifiers in C++
    • Abstract Class in C++
    • C++ Class and Object
    • What is Template Class in C++?
    • C++ Algorithm
    • Data Structures and Algorithms C++
    • C++ Garbage Collection
    • Virtual Keyword in C++
    • Access Specifiers in C++
    • Storage Class in C++
    • Call by Value in C++
    • Multimap in C++
    • C++ Multiset
    • C++ Lambda Expressions
    • Stack in C++
    • C++ Static
    • C++ static_cast
    • Deque in C++
    • C++ Vector Functions
    • C++ 2D Vector
    • C++ List
    • C++ Mutable
    • Enum in C++
    • Abstraction in C++
    • Signal in C++
    • C++ Queue
    • Priority Queue in C++
    • Regular Expressions in C++
    • C++ Hash Table
    • File Handling in C++
    • C++ Stream
    • ifstream in C++
    • C++ ofstream
    • C++ fstream
    • C++ Read File
    • C++ iomanip
    • Macros in C++
    • Templates in C++
    • C++ setprecision
    • C++ Int to String
    • C++ thread( )
    • C++ Thread Pool
    • C++ thread_local
  • Programs
    • Patterns in C++
    • Star Patterns In c++
    • Swapping in C++
    • Reverse Number in C++
    • Palindrome Program in C++
    • Palindrome in C++
    • Factorial Program in C++
    • Fibonacci Series in C++
    • Square Root in C++
    • Random Number Generator in C++
    • Prime Number in C++
    • Leap Year Program in C++
    • Anagram in C++
    • Armstrong Number in C++
    • Reverse String in C++
    • Socket Programming in C++
    • Matrix Multiplication in C++
    • C++ using vs typedef
    • C++ vector vs list
    • C++ vector vs array
  • Interview question
    • C++ Interview Questions
    • Multithreading Interview Questions C++

Related Courses

C++ Training Course

Java Training Course

C Programming Course

Footer
About Us
  • Blog
  • Who is EDUCBA?
  • Sign Up
  • Corporate Training
  • Certificate from Top Institutions
  • Contact Us
  • Verifiable Certificate
  • Reviews
  • Terms and Conditions
  • Privacy Policy
  •  
Apps
  • iPhone & iPad
  • Android
Resources
  • Free Courses
  • Java Tutorials
  • Python Tutorials
  • All Tutorials
Certification Courses
  • All Courses
  • Software Development Course - All in One Bundle
  • Become a Python Developer
  • Java Course
  • Become a Selenium Automation Tester
  • Become an IoT Developer
  • ASP.NET Course
  • VB.NET Course
  • PHP Course

© 2020 - EDUCBA. ALL RIGHTS RESERVED. THE CERTIFICATION NAMES ARE THE TRADEMARKS OF THEIR RESPECTIVE OWNERS.

EDUCBA
Free Software Development Course

Web development, programming languages, Software testing & others

*Please provide your correct email id. Login details for this Free course will be emailed to you
Book Your One Instructor : One Learner Free Class

Let’s Get Started

This website or its third-party tools use cookies, which are necessary to its functioning and required to achieve the purposes illustrated in the cookie policy. By closing this banner, scrolling this page, clicking a link or continuing to browse otherwise, you agree to our Privacy Policy

EDUCBA

*Please provide your correct email id. Login details for this Free course will be emailed to you
EDUCBA Login

Forgot Password?

EDUCBA
Free Software Development Course

Web development, programming languages, Software testing & others

*Please provide your correct email id. Login details for this Free course will be emailed to you

Special Offer - C++ Training (4 Courses, 3 Projects, 4 Quizzes) Learn More