我有一个班级,例如:
class Vector
{
float x, y, z
};
Vector v;
指针:
float *c = &v.x;
当我使用递增运算符访问y和z成员时,它是否可以正常工作?
P.S。通过这种方式做的风格很糟糕,但这是运动的兴趣。
答案 0 :(得分:1)
当我使用递增运算符访问y和z成员时,它是否可以正常工作?
没有。未定义的行为。您不能跨对象执行指针算法,也不能保证struct padding。
你可以做这样的事情:
class Vector
{
float v[3];
int& x() { return v[0]; }
int x() const { return v[0]; }
// and so on ...
};