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