0
0
C++programming~10 mins

Method overriding in C++ - Step-by-Step Execution

Choose your learning style9 modes available
Concept Flow - Method overriding
Define Base Class with Method
Define Derived Class with Same Method
Create Derived Object
Call Method on Derived Object
Derived Method Runs, Overrides Base
End
Method overriding happens when a derived class has a method with the same name as its base class, so calling it on a derived object runs the new method instead of the base one.
Execution Sample
C++
#include <iostream>

class Base {
public:
  void greet() { std::cout << "Hello from Base\n"; }
};

class Derived : public Base {
public:
  void greet() { std::cout << "Hello from Derived\n"; }
};

int main() {
  Derived d;
  d.greet();
}
This code defines a base class and a derived class that both have a greet method. Calling greet on the derived object runs the derived version.
Execution Table
StepActionClassMethod CalledOutput
1Create object dDerivedNone
2Call d.greet()Derivedgreet()Hello from Derived
3End of mainNoneNone
💡 Program ends after calling the overridden greet method on Derived object.
Variable Tracker
VariableStartAfter Step 1After Step 2Final
dundefinedDerived object createdNo changeDerived object exists
Key Moments - 2 Insights
Why does calling d.greet() run Derived's greet, not Base's?
Because d is an object of Derived, and Derived has its own greet method that overrides Base's. See execution_table step 2 where Derived's greet runs.
What if Derived did not have greet method?
Then calling d.greet() would run Base's greet method, since Derived inherits it. This is not shown in the table but is the default behavior.
Visual Quiz - 3 Questions
Test your understanding
Look at the execution table, what is printed when d.greet() is called?
ANo output
BHello from Derived
CHello from Base
DCompilation error
💡 Hint
Check execution_table row 2 under Output column.
At which step is the Derived object created?
AStep 1
BStep 2
CStep 3
DBefore Step 1
💡 Hint
Look at execution_table row 1 Action column.
If Derived did not override greet(), what would happen when d.greet() is called?
ANo method runs
BDerived's greet runs
CBase's greet runs
DProgram crashes
💡 Hint
Refer to key_moments second question about default behavior.
Concept Snapshot
Method overriding means a derived class has a method with the same name as its base class.
When calling that method on a derived object, the derived version runs.
This allows customizing behavior in subclasses.
In C++, overriding requires same method signature.
Without overriding, base class method runs.
Full Transcript
Method overriding in C++ happens when a derived class defines a method with the same name as one in its base class. When you create an object of the derived class and call that method, the derived class's version runs instead of the base class's. In the example, the base class has a greet method that prints "Hello from Base". The derived class also has a greet method that prints "Hello from Derived". When we create a Derived object d and call d.greet(), it prints "Hello from Derived". This shows the derived method overrides the base method. If the derived class did not have greet, calling d.greet() would run the base class's greet method. This is how C++ supports customizing behavior in subclasses by overriding methods.