前言 UyF]gO
el[6E0!@
熟悉C的程序员都知道union(联合体)的用法,利用union可以用相同的存储空间存储不同型别的数据类型,从而节省内存空间。当访问其内成员时可用"."和"->"来直接访问。在C++出现后,它继承了union并保留了其在C中的特性。但是在C++中的union又有了新的扩展,这需要大家了解,要不然你会感到费解和迷惑。下面我讲两点。 F'*{Fk
h
^3r2Q?d\
一、在union中存储对象 z ,ledTl
a(J~:wgd
在C中union中可以存储任意类型的内置数据类型,那么在C++中union是否可以存储对象呢?还是让我们看一个例子吧,这比任何言语都能说明问题,不是吗? MT&i5!Z
YEZ"BgUnbp
#pragma warning(disable : 4786) +:Y6O'h.
#include L3kms6ch
using namespace std; [e*8hbS
RKBtwZx>f
class TestUnion sF<4uy
{ zF{z_c#3@
public: yXEC@#?|
TestUnion(long l):data_(l) nKHyq\
{ ?VzST }
}; z!F?#L5
int data_; t;4{l`dk
}; `[:f;2(@
ZAiQofQ:2
typedef union _tagUtype_ ]0O pd9
{ &