Активный член объединения в C++
В объединении одновременно живет только один член - тот, который записали последним.
После присваивания в float
читают именно f, а не соседнее
поле. Запишем дробное значение
и выведем его:
#include <iostream>
union Sample {
int i;
float f;
};
int main() {
Sample s{};
s.f = 2.5f;
std::cout << s.f << "\n";
return 0;
}
Пока последней операцией была запись
в f, активным членом считается
именно float, и только его
имеет смысл читать.
В union Pair с int a
и float b. Присвойте b = 2.0f
и выведите b.