다음을 통해 공유


컴파일러 경고(수준 3) C4608

'union_member'가 이미 이니셜라이저 목록의 다른 공용 구조체 멤버 'union_member'에 의해 초기화되었습니다.

동일한 공용 구조체의 두 멤버가 초기화 목록에서 초기화되었습니다. 공용 구조체 멤버 중 하나에만 액세스할 수 있습니다.

다음 샘플에서는 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;
};