Рубрики

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

#include<iostream>

using namespace std;

  

class Base

{

public:

    void show()

    {

        cout<<" In Base ";

    }

};

  

class Derived: public Base

{

public:

    int x;

    void show()

    {

        cout<<"In Derived ";

    }

    Derived()

    {

        x = 10;

    }

};

  

int main(void)

{

    Base *bp, b;

    Derived d;

    bp = &d;

    bp->show();

    cout << bp->x;    

    return 0;

}

(A) Ошибка компилятора в строке «bp-> show ()»
(B) Ошибка компилятора в строке «cout <x»
(С) В Базе 10
(D) В производной 10

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

Тест на этот вопрос

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

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

0.00 (0%) 0 votes