从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;  
    }  
  
      
      
  
  
}  

猜你喜欢

转载自android-zhang.iteye.com/blog/1995190