union在我们敲代码的时候的使用概率远远小于struct。所以我们常常不太关心她。就知道他是使用内存复用技术。同一个时刻,他仅仅能存在一个成员的值。 C中,我们在union中能够包括struct的,可是情况到了C++中的时候就不一样了。尤其是我们union中使用到类的时候。比方说使用到CString 的时候,你会发现,程序会报错。
这个问题让我非常不理解,看了些资料最终明确了 是怎么回事了。union 对象在创建的时候,不会去构造,仅仅是简单的去分配内存。
我们在union中包括了类的时候,这时候类就要去构造。union是不构造的,这种情况下,导致的结果。类的对象没有创建出来。这样就会出现错误。