}
TestUnion::TestUnion(long l) : data_(l)
{
}
TestUnion::DataUnion::DataUnion(const char* ch) : ch_(ch)
{
}
TestUnion::DataUnion::DataUnion(long l) : l_(l)
{
}
int main (void)
{
return 0;
}
正如上面程序所示,C++中的 union 也可以包含构造函数,但是,这虽然被语言所支
持,但实在是一种不佳的编程习惯,因此,我不打算对上面的程序进行过多的说明。我更
推荐如下的编程风格:
class TestUnion
{
union DataUnion
{
const char* ch_;
long l_;
} data_;
public:
TestUnion(const char* ch);
TestUnion(long l);
};
TestUnion::TestUnion(const char* ch)
{
data_。ch_ = ch;
}
TestUnion::TestUnion(long l)
{
data_。l_ = l;