【发布时间】:2010-09-27 12:22:46
【问题描述】:
class Foo {
Foo(int val) { /* Do some initialization */ }
Foo() { /* Do nothing */ }
};
union Bar {
Foo foo;
};
该代码会产生此错误:
错误 C2620:联合 'Bar' 的成员 'Bar::foo' 具有用户定义的构造函数或非平凡的默认构造函数
我理解如果构造函数确实做了什么你会抛出那个错误,但是这里的构造函数没有参数并且什么都不做。有什么办法可以把这个类塞进一个工会?我不得不一直求助于char foo[sizeof(Foo)],并且想要一个更清洁的解决方案。
【问题讨论】:
标签: c++ constructor unions