通过增量运算符访问类成员

时间:2013-06-13 21:09:23

标签: c++ pointers increment

我有一个班级,例如:

class Vector
{
    float x, y, z
};
Vector v;

指针:

float *c = &v.x;

当我使用递增运算符访问y和z成员时,它是否可以正常工作?

P.S。通过这种方式做的风格很糟糕,但这是运动的兴趣。

1 个答案:

答案 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 ...
};