从零学习C++ (五)匿名共同体
从0学习C++ (五)匿名共同体
#include <iostream>; #include <cmath>; #include <string>; #include <cstring>; /* 匿名共用体 匿名共用体(anonymous union)没有名称,其成员将成为位于相同地质处的变量。显然,每次 只有一个成员是当前的成员。 下面的例子中,由于共同体是匿名的,因此id_num 和 id_char被视为price的两个成员,他们的地址相同,所以 不需要中间标示符 id_val.程序员负责确定当前哪个成员是活动的。 */ struct widget{ char brand[20]; int type; union { long id_num; char id_char[20]; }; }; int main(){ using namespace std; widget price; price.type = 1; if(price.type == 1){ cin >> price.id_num; }else{ cin >> price.id_char; } if(price.type == 1){ cout << price.id_num << endl; }else{ cout << price.id_char << endl; } }