Почему компилятор не вызывает функцию базового класса (параметризованную) через объект производного класса? Производный класс наследует функцию от базового класса, правильно?Вызов функции базового класса через производный объект класса
#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;
}
Однако, когда я использовал оператор разрешения области, я получил желаемый результат. Может ли кто-нибудь объяснить мне логическое объяснение? Могу ли я по-прежнему вызывать функцию базового класса (параметризованную) через объект производного класса? Благодаря!
int main()
{
Derived d;
d.Base::fun(5);
return 0;
}