我有代码:
class Vector4
{
public:
union
{
float x,y,z,w;
float v[4];
};
Vector4(float _x, float _y, float _z, float _w)
: x(_x), y(_y), z(_z), w(_w)
{
std::cout << "Vector4 constructor: " << this->x << "; " << this->y << "; " << this->z << "; " << this->w << std::endl;
}
};
我记得在 VC 7.1 中一切都很好,但在 VC 2010 中我收到了警告:
警告 C4608:“Vector4::y”已由初始化列表中的另一个联合成员“Vector4::::Vector4::x”初始化
当我写:
Vector4 vec(1.0f, 0.0f, 0.0f, 0.0f);
我在控制台中看到:
Vector4构造函数:0;0; 0; 0
请告诉我,发生了什么?