EDUCBA

EDUCBA

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

Overriding in C++

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

overriding in C++

Introduction to Overriding in C++

Overriding in C++ is one of the ways to achieve run time polymorphism, in which we modify the behavior of the same method. In general, child class inherits the member functions and data members from the base class. But when our need is to override functionality in the child class, then we need to use function overriding. Overriding provides a privilege to the methods to have the same name in both base class and its derived class. It enables us to change the function behavior present in the base class, in its derived classes according to our need.

How Overriding works in C++?

Before understanding overriding, let us understand polymorphism first. The literal meaning of polymorphism is many forms i.e. having multiple forms of one particular thing. In an object-oriented programming language, this is one of the useful features. In inheritance, polymorphism is achieved, by function or method overriding, when both base and derived classes have the same declaration of member function but their definition will be different.

Start Your Free Software Development Course

Web development, programming languages, Software testing & others

To do this, we need to inherit from a class into the derived class first. Then we should provide different definitions according to the need, for anyone of the base class’s methods again inside the derived class. Only then, that function is said to be overridden, and this step by step process is called Function Overriding.

Let’s say take a scenario wherein our application has the requirement to change the behavior of the base class method in a derived class, then we should use the feature of overriding. In order to override a function in the derived class, we must have the same signature in child class also function names should be same in both bases and derived classes. Here signature means usage of the same data type and sequence of parameters to be passed in the function. If there is no need for parameters, then we need not use any parameter in the base function as well as child function. Below we have some points we need to keep in mind before we use overriding.

  • In C++ programming, overriding will be an example of Run time polymorphism or Dynamic Polymorphism.
  • Overriding is possible only in the methods present in derived classes because a method is overridden in the derived class from the base class.
  • In order to achieve overriding, the functions present in base and derived classes should have the same name, same return type and same parameters.

The method which is overridden by the override declaration is called the overridden base method. The base class will contain this method. Fresh implementation called, override method is inherited from this base class. When we create an object of the derived class and call the member function which exists in both base and derived classes, the member function of the base class will be ignored and member function of the derived class will be invoked.

Below are the requirements for Method Overriding:

  • The first and most important thing is Inheritance should be there from base to derived class because function overriding cannot be done within the same class. To achieve this we need a base class and a derived class.
  • The redefined function should have exactly the same declaration in both base and derived classes. What does that mean? This means that the functions should have the same name, same signature and same parameter list.

Example of Overriding

Below a simple example is explained with steps.

Code:

class Animal
{
public:
void Message ( )
{
cout << "Hello there!! I am Animal";
}
};
class Dog: public Animal
{
public:
void Message ( )
{
cout << "I am Dog!!";
}
}

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,899 ratings)
Course Price

View Course

Related Courses
Java Training (40 Courses, 29 Projects, 4 Quizzes)C Programming Training (3 Courses, 5 Project)

In the above example, function Message( ) is overridden in the derived class.

Example with Steps

1. Let us take a look at the example using main( ) function in order to understand overriding better.

2. Create a base class with any name. Here I am using Animal. Write a method to display some message to display. This will be our overridden method which we will override in the inherited class. Inside the method write some message to print.

class Animal
{
public void Message( )
{
cout << "Hello there!! I am Animal";
}
}

3. Now create one more class Dog. This time we will inherit it from the base class which we created earlier i.e. Animal. To inherit we use the ‘:’ symbol.

class Dog: public Animal

4. Here we declare the same Message( ) function for different implementation and write some message. Make sure that the method name and signature in the derived class match with the method name and signature in the base class.

public void Message ( )
{
cout << "Hey!! I am Dog";
}

5. We need one more class to execute the functionality to check the overriding. Create a class with any name. Inside that write the Main function.

class ExecutionClass
{
int Main( )
{
}
}

6. Create an object of the parent class and trigger the function using the object of the class. This will invoke the Message method present in the Animal class.

Animal animalObject;
animalObject.Message( );

7. Now create the object of the derived class and call the Message method. This will invoke the Message method of the Dog class.

Dog dogObject;
dogObject.Message( );

8. What will be the output of this code? Can you guess it? This is as shown below.

Output:

output in Overriding in C++

9. In the above example, we are calling the function with the same name and signature, using an object created for derived and base class separately. In both cases, different versions of the function will be called for the base and derived class.

Conclusion

In this article, we understood the method overriding in C++, the need for the method overriding, real-world examples of the overriding principle, the way to achieve it and the example of overriding using the code. We can conclude that overriding is one of the useful features in polymorphism in C++ in which we can change the behavior of the base class method in the derived class.

Recommended Articles

This is a guide to Overriding in C++. Here we discuss how Overriding in C++ works, a simple example with different steps. You can also go through our other related articles to learn more-

  1. Arrays in C++
  2. C++ Commands
  3. Overriding in OOPs
  4. Overriding in Java

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