【发布时间】:2009-12-09 11:17:34
【问题描述】:
你好我想知道下面代码的原因
void main()
{
class test
{
public:
test(){}
int k;
};
class test1
{
public:
test1(){}
int k;
};
union Test
{
test t1;
test1 t2;
};
}
对于上面的代码,它给出了错误“error C2620: union 'Test': member 't1' has user-defined constructor or non-trivial default constructor”
class test
{
public:
//test(){}
int k;
};
class test1
{
public:
//test()1{};
int k;
};
union Test
{
test t1;
test1 t2;
};
以上,没有错误。
我想知道原因。
在此先感谢您。 :)
【问题讨论】:
-
由于已经提供了答案,我只想告诉您,您的第一个代码的 main 返回类型错误。 main() 在 C/C++ 中应该总是返回一个“int”。
-
仅作记录:C++0x 将支持在联合体内具有非平凡构造函数/析构函数的类。
-
同样在 test1 类中,ctor 被命名为 test 而不是 test1。