Рубрики

C ++ | Виртуальные функции | Вопрос 14

Предсказать вывод следующей программы на C ++

#include<iostream>

using namespace std;

  

class Base

{

public:

    virtual void show() { cout<<" In Base \n"; }

};

  

class Derived: public Base

{

public:

    void show() { cout<<"In Derived \n"; }

};

  

int main(void)

{

    Base *bp = new Derived;

    bp->Base::show();  // Обратите внимание на использование разрешения области здесь

    return 0;

}

(А) в базе
(B) В производном
(C) Ошибка компилятора
(D) Ошибка выполнения

Ответ: (А)
Объяснение: Доступ к функции базового класса возможен с помощью оператора разрешения области действия, даже если функция является виртуальной.
Тест на этот вопрос

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

C ++ | Виртуальные функции | Вопрос 14

0.00 (0%) 0 votes