C++ | Inheritance | Question 8

filter_none

edit
close

play_arrow

link
brightness_4
code

#include<iostream>
using namespace std;
  
class Base
{
public:
    int fun()  { cout << "Base::fun() called"; }
    int fun(int i)  { cout << "Base::fun(int i) called"; }
};
  
class Derived: public Base
{
public:
    int fun() {  cout << "Derived::fun() called"; }
};
  
int main()
{
    Derived d;
    d.fun(5);
    return 0;
}

chevron_right


(A) Base::fun(int i) called
(B) Derived::fun() called
(C) Base::fun() called
(D) Compiler Error


Answer: (D)

Explanation: If a derived class writes its own method, then all functions of base class with same name become hidden, even if signaures of base class functions are different.

In the above question, when fun() is rewritten in Derived, it hides both fun() and fun(int) of base class.

Quiz of this Question



My Personal Notes arrow_drop_up


Article Tags :
Practice Tags :


2


Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.