C++中联合体(union)的使用

 1 typedef union para
 2 {
 3   double tmp[10];
 4   struct
 5 {
 6    double a;
 7  double  b;
 8    double c;
 9   double  d;
10 }NP;
11 }NPara;
12 //或者如下所示
13  union para
14 {
15   double tmp[10];
16   struct
17 {
18    double a;
19  double  b;
20    double c;
21   double  d;
22 }NP;
23 };
24 typedef union para   NPara;
25 
26 //详细可以参看typedef的用法,本文主要讲解union的用法,不再赘述


union联合体的用法:

 例如利用typedef了以后,我们可以这样声明联合体对象

NPara Nlpara;  //调用的时候可以采用  Nlpara.NP.a;

或者声明联合体指针,

NPara *pointer;//但是仅仅声明了一个指针,指针并没有初始化,没有指向确定的对象,此时调试代码会出现指针错☞的情况。

所以要对指针进行初始化,在C++中可以这样:

pointer=new Npara;//即令新建的联合体对象赋值给当前指针,

我们知道new 和delete一般是相互依存的,在程序结尾处,可以采用

if(NULL!=pointer)

{

  delete pointer;

 pointer=NULL;

}

另外如果在构造函数中新建了一个指针对象,在析构函数中要delete掉。

原文地址:https://www.cnblogs.com/limera/p/union.html