This documentation is archived and is not being maintained.

Compiler Warning (level 3) C4608

'union_member' has already been initialized by another union member in the initializer list, 'union_member'

Two members of the same union were initialized in an initialization list. You can only access one member of the union.

The following sample generates C4608

// C4608.cpp
// compile with: /W3
class X {
public:
   X(char c) : m_i( c + 1), m_c(c) {
   // try the following line instead
   // X(char c) : m_c(c) {
   } // C4608

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;
};

main() {
}
Show: