3

我有一堂课,例如:

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

和一个指针:

float *c = &v.x;

当我将使用增量运算符访问 y 和 z 成员时,它会正常工作吗?

PS这种方式不好做,但它的运动兴趣。

4

1 回答 1

1

当我将使用增量运算符访问 y 和 z 成员时,它会正常工作吗?

不,未定义的行为。您不能跨对象执行指针运算,也不能保证结构填充。

你可以做这样的事情:

class Vector
{
    float v[3];
    int& x() { return v[0]; }
    int  x() const { return v[0]; }
    // and so on ...
};
于 2013-06-13T21:11:12.230 回答