联合的编译错误

Compilation error for union

本文关键字:错误 编译      更新时间:2023-10-16

有人可以解释为什么以下程序导致编译问题。我已经通过VS2013编译了源代码。

#include <iostream>
using namespace std;
// Do not work
union myuni
{
    string str;
};
void main()
{
}

联合在声明时是否需要固定长度大小?同样的方案适用于结构。

union中不能有string,因为前者包含构造函数。

(尽管在 C++11 中允许,但在 VS2013 中不受支持)。