Рубрики

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

#include<iostream>

   

using namespace std;

class P {

public:

   void print()  { cout <<" Inside P"; }

};

   

class Q : public P {

public:

   void print() { cout <<" Inside Q"; }

};

   

class R: public Q { };

   

int main(void)

{

  R r; 

  r.print();

  return 0;

}

(А) Внутри Р
(B) Внутри Q
(C) Ошибка компилятора: неоднозначный вызов print ()

Ответ: (Б)
Объяснение: Функция печати отсутствует в классе R. Поэтому она ищется в иерархии наследования. print () присутствует в обоих классах P и Q, какой из них следует назвать? Идея состоит в том, что при наличии многоуровневого наследования функция линейно ищется в иерархии наследования до тех пор, пока не будет найдена подходящая функция.
Тест на этот вопрос

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

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

0.00 (0%) 0 votes