Рубрики

C ++ | Разное C ++ | Вопрос 3

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

#include<iostream>

using namespace std;

  

union A {

  int a;

  unsigned int b;

  A() { a = 10; }

  unsigned int getb() {return b;}

};

  

int main()

{

    A obj;

    cout << obj.getb();

    return 0;

}

(A) Ошибка компилятора: union не может иметь функции
(B) Ошибка компилятора: невозможно получить доступ к закрытым членам A
(С) 10
(D) стоимость мусора

Ответ: (с)
Объяснение: Подобно struct и class, union может иметь методы. Подобно struct и в отличие от класса, члены union по умолчанию являются публичными.

Поскольку данные-члены union совместно используют память, значение b становится таким же, как a.
Тест на этот вопрос

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

C ++ | Разное C ++ | Вопрос 3

0.00 (0%) 0 votes