Рубрики

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

#include<iostream>

using namespace std;

  

class Base

{

public:

    virtual void show() = 0;

};

  

int main(void)

{

    Base b;

    Base *bp;

    return 0;

}

(A) Есть ошибки компилятора в строках «Base b;» и «Base bp;»
(B) Есть ошибка компилятора в строке «Base b;»
(C) В строке «Base bp» есть ошибка компилятора.
(D) Нет ошибки компилятора

Ответ: (Б)
Объяснение: Поскольку Base имеет чисто виртуальную функцию, она становится абстрактным классом, и его экземпляр не может быть создан.

Поэтому в строке «База b» есть ошибка.

Обратите внимание, что в строке «Base * bp;» нет ошибки. У нас могут быть указатели или ссылки на абстрактные классы.
Тест на этот вопрос

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

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

0.00 (0%) 0 votes