在任何人说任何话之前,我知道这可能不被推荐,但我仍然很好奇是否有更好的方法来做这件事,或者有理由不去做,这只是一件奇怪的事情。
我开始研究这个,因为我想直接使用类中语义命名的成员访问数组的元素,同时仍然能够迭代数组,而不必调用/创建一些 getter 或 setter 方法。
我有一个看起来像这样的类定义。
class Vertex{
public:
Vertex(float x,float y,float z,float w);
float v[4];
float &x,&y,&Z,&w;
};
还有一个看起来像这样的构造函数。我的问题是。有没有更好的方法来做我在构造函数中所做的事情?
Vertex::Vertex(float vx,float vy,float vz,float vw):
x(*const_cast<float*>( &this->v[0] )),
y(*const_cast<float*>( &this->v[1] )),
z(*const_cast<float*>( &this->v[2] )),
w(*const_cast<float*>( &this->v[3] ))
{
v[0]=vx;
v[1]=vy;
v[2]=vz;
v[3]=vw;
}
编辑
我是个白痴……你可以像 Jonathan Wakely 说的那样做。
x(v[0])
我想我在尝试之前遇到了一些其他问题。那好吧。