小编mil*_*eft的帖子

查询C++中的类变量声明

我有一个类来表示浮动的3D矢量:

class Vector3D
{
    public:

    float x, y, z;
    float * const data;

    Vector3D() : x(0.0), y(0.0), z(0.0), data(&x) {}
}
Run Code Online (Sandbox Code Playgroud)

我的问题是:x,y和z是否会在内存中顺序分配,这样我就可以将x的地址分配给数据,然后使用数据上的下标运算符来作为数组访问矢量组件?

例如,有时我可能想直接访问矢量组件:

Vector3D vec;
vec.x = 42.0;
vec.y = 42.0;
vec.z = 42.0;
Run Code Online (Sandbox Code Playgroud)

有时我可能想通过偏移来访问它们:

Vector3D vec;
for (int i = 3; i--; )
    vec.data[i] = 42.0;
Run Code Online (Sandbox Code Playgroud)

第二个示例是否与第一个示例具有相同的效果,或者我是否存在覆盖除x,y和z浮点数以外的内存的风险?

c++ arrays variables subscript memory-address

5
推荐指数
1
解决办法
511
查看次数

标签 统计

arrays ×1

c++ ×1

memory-address ×1

subscript ×1

variables ×1