Inquérito sobre declarações de variáveis de classe em C ++

Tenho uma classe para representar um vetor 3D de carros alegóricos:

class Vector3D
{
    public:

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

    Vector3D() : x(0.0), y(0.0), z(0.0), data(&x) {}
}

Minha pergunta é: x, ye z serão alocados sequencialmente na memória para que eu possa atribuir o endereço de x aos dados e, posteriormente, usar o operador subscrito nos dados para acessar os componentes do vetor como uma matri

Por exemplo, às vezes eu posso acessar os componentes vetoriais diretamente:

Vector3D vec;
vec.x = 42.0;
vec.y = 42.0;
vec.z = 42.0;

E às vezes eu posso querer acessá-los por deslocamento:

Vector3D vec;
for (int i = 3; i--; )
    vec.data[i] = 42.0;

O segundo exemplo terá o mesmo efeito que o primeiro ou corro o risco de sobrescrever memória diferente dos flutuadores x, ye

questionAnswers(6)

yourAnswerToTheQuestion