структуры и объединения в с++

#include <iostream>

struct widget {

char brand[20];
int type;
union id {
    
    long id_num;
    char id_char[20];
   } id_val;
};

int main() {

widget prize;

if (prize.type == 1)
    std::cin >> prize.id_val.id_num;
else
    std::cin >> prize.id_val.id_char;

return 0;

}

я не понимаю что происходит в данном куске кода:

std::cin >> prize.id_val.id_num; 

и соответственно в:

std::cin >> prize.id_val.id_char;

как я понял в структуре помещается объединение и в объединении задаются дополнительные параметры для структуры но что значит id_val я понять не как не могу знаю только что для структур это значит создание переменной определённого типа в моём случае типа widget но может ли это работать и для объединений или это что то другое подскажите пожалуйста и простите если вопрос был не понятен.


Ответы (0 шт):