您好我想知道下面的代碼奇怪的行爲類對象中聯盟
void main()
{
class test
{
public:
test(){}
int k;
};
class test1
{
public:
test1(){}
int k;
};
union Test
{
test t1;
test1 t2;
};
}
的原因上面的代碼提示錯誤「錯誤C2620:工會‘測試’:成員‘T1’有用戶定義構造函數或不平凡的默認構造函數「
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將支持在工會內部具有不平凡的構造函數/析構函數的類。 –
同樣在class test1中,ctor被命名爲test而不是test1。 –