コンパイラの警告 (レベル 3) C4608
'union_member' は既に初期化子リスト 'union_member' 内の他の共用体メンバーにより初期化されています。
同じ共用体の 2 つのメンバーが、初期化リストで初期化されました。 共用体の 1 つのメンバーにのみアクセスできます。
次の例では C4608 警告が生成されます。
// C4608.cpp
// compile with: /W3 /c
class X {
public:
X(char c) : m_i( c + 1), m_c(c) {} // C4608
// try the following line instead
// X(char c) : m_c(c) {}
private:
union {
int m_i;
char m_c;
};
};
union Y {
public:
Y(char * name) : m_number(0.3), m_string( name ) {} // C4608
private:
double m_number;
char * m_string;
};