HD_777 Ответов: 3

Может ли объединение содержать элементы данных, а также функции, которые могут работать с ними?


Can a union contain data members as well as functions that can operate upon them? 


Что я уже пробовал:

Я ничего практически не пробовал, но просто хочу прояснить концепцию.

3 Ответов

Рейтинг:
0
Рейтинг:
0

Richard MacCutchan

Объединения[^Однако, как отмечает Microsoft, есть и лучшие способы, чем профсоюзы.


Рейтинг:
0

CPallini

Да (подробности см. в документации). Попробуйте например:

#include <iostream>
using namespace std;

union U
{
  double d;
  int i;

  void incInt(){ ++i;}
  void showInt(){ cout << "int value is " << i << "\n";}
  void showDouble() { cout << "double value is " << d << "\n";}
};

int main()
{
  U u;
  u.i = 10;
  u.showInt();
  u.showDouble();
  u.incInt();
  u.showInt();
  u.showDouble();
}

Пожалуйста современный C++ ввел в действие std::variant альтернатива union.