Поделиться через


Предупреждение компилятора (уровень 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;
};