拥有一种或多种方法的工会有什么问题吗?或者有什么需要注意的?(我可以看到构造函数/析构函数由于精神分裂症的原因而存在问题)
问问题
7442 次
2 回答
29
来自 C++03 & C++0x (Draft N3092) 标准:
9.5
联合 联合可以有成员函数(包括构造函数和析构函数),但不能有虚拟(10.3)函数。联合不应有基类。联合不应用作基类。
使用聚合初始化语法 ( U u = { 42 };
) 初始化联合或在之后设置成员 ( U u; u.i = 42;
) 不是“有问题的”。也没有使用构造函数 ( U u( 42 );
) 对其进行初始化。
唯一的“问题”是您不能将聚合初始化程序语法用于具有用户定义构造函数的联合。
于 2010-10-29T22:21:12.473 回答
-11
你怎么可能实现这样的事情?这是一个指向联合的指针,希望您不要介意您不知道哪些变量可以安全使用,哪些不是。
无论如何,联合实际上是一种死语言特性——它们已经完全被基于库的方法所取代,比如 boost::variant 或 boost::any。有点类似于 void* 和功能宏 - 与其他选项相比,它们在 C++ 中很少有用。
于 2010-10-29T22:13:41.050 回答