我有以下课程:
class LineSegW {
public:
union {
struct {
public:
int sx;
int sy;
int ex;
int ey;
};
struct {
public:
Vec2i s;
Vec2i e;
};
};
int w;
LineSegW(int _sx, int _sy, int _ex, int _ey, int _w) :
sx(_sx), sy(_sy), ex(_ex), ey(_ey), w(_w) {}
};
Vec2i只包含2个整数。现在问题是给定的构造函数没有初始化类成员,除了不在union中的整数w。当我将构造函数编写为
时LineSegW(int _sx, int _sy, int _ex, int _ey, int _w) {
sx = _sx;
sy = _sy;
ex = _ex;
ey = _ey;
w = _w;
}
一切都按预期工作。两种变体都不会产生警告或错误,因此第一个选项有什么问题?