我在结构
中有一个匿名联合struct A {
union {
char c;
double d;
};
A(const A &a) {
c = a.c;
d = a.d;
}
};
我想知道定义其复制构造函数的最佳方法是什么。 我们必须复制所有联盟字段吗?我想我们必须......?
答案 0 :(得分:4)
请记住,一次只能有一个联合字段处于活动状态。要复制联合,您只需要复制它们中的任何一个。
一般来说,当使用这样的工会时,你会有某种&#34;标签&#34;字段跟踪哪个字段处于活动状态。然后,您可以在该标记上使用<body>
// background-color is black
<div id="abc"> ... </div>
</body>
<body>
// background-color is red
<div id="cde"> ... </div>
</body>
语句来确定哪个字段是活动字段以及如何将其复制。
或者,考虑使用switch
,它是一个类型安全的包装器,围绕一个固定数量类型的对象。