前言 ~r+;i,,X
?z p$Wz;k
熟悉C的程序员都知道union(联合体)的用法,利用union可以用相同的存储空间存储不同型别的数据类型,从而节省内存空间。当访问其内成员时可用"."和"->"来直接访问。在C++出现后,它继承了union并保留了其在C中的特性。但是在C++中的union又有了新的扩展,这需要大家了解,要不然你会感到费解和迷惑。下面我讲两点。 zoA]7pG-
1Z|q0-Dw0
一、在union中存储对象 h
~v8Q_6
90(JP-
在C中union中可以存储任意类型的内置数据类型,那么在C++中union是否可以存储对象呢?还是让我们看一个例子吧,这比任何言语都能说明问题,不是吗? `N;JM3 ck
Ee^2stc-
#pragma warning(disable : 4786) XXvM*"3D5
#include -:Yx1Y3
[
using namespace std;
y3kXfSe
|G }qY5_
class TestUnion 5Q
=o.wf
{ |}=xA%)
public: r3;?]r.}7
TestUnion(long l):data_(l) Iy'a2@
{ x+47CDDu3
}; kect)=T(
int data_; 0"LJ{:plz
}; `|+!H.3
-6@#Nq_iWU
typedef union _tagUtype_ AfB,`l`k
{ 9n%vz@X
TestUnion obj; ?31#:Mg6g+
}UT; H+6+I53
^|gD;OED7O
int main (void) .7_<0&kW