Рубрики

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

#include<iostream>

using namespace std;

  

class Base

{

public :

    int x, y;

public:

    Base(int i, int j){ x = i; y = j; }

};

  

class Derived : public Base

{

public:

    Derived(int i, int j):x(i), y(j) {}

    void print() {cout << x <<" "<< y; }

};

  

int main(void)

{

    Derived q(10, 10);

    q.print();

    return 0;

}

(А) 10 10
(B) Ошибка компилятора
(С) 0 0

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

Следующее — безошибочная программа и печатает «10 10»

#include<iostream>

using namespace std;

  

class Base

{

public :

    int x, y;

public:

    Base(int i, int j){ x = i; y = j; }

};

  

class Derived : public Base

{

public:

    Derived(int i, int j): Base(i, j) {}

    void print() {cout << x <<" "<< y; }

};

  

int main(void)

{

    Derived q(10, 10);

    q.print();

    return 0;

}

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

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

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

0.00 (0%) 0 votes