Рубрики

C ++ | Наследование Вопрос 8

#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;

}

(A) Base :: fun (int i) называется
(B) Производная :: fun () называется
(C) Base :: fun () называется
(D) Ошибка компилятора

Ответ: (Д)
Объяснение: Если производный класс пишет свой собственный метод, то все функции базового класса с одинаковыми именами становятся скрытыми, даже если подписи функций базового класса различны.

В приведенном выше вопросе, когда fun () переписывается в Derived, он скрывает как fun (), так и fun (int) базового класса.
Тест на этот вопрос

Рекомендуемые посты:

C ++ | Наследование Вопрос 8

0.00 (0%) 0 votes