我正在制作一个涉及三维坐标的库,并发现三维角度的组件有两个名称:偏航俯仰滚动和航向滚动,海拔银行类参考成员指向同一类中的其他成员
所以,我提出以下(在C++ 11完成):
struct Angle {
float heading;
float elevation;
float bank;
float &yaw = heading;
float &pitch = elevation;
float &roll = bank;
// Some Constructors (copy and assignment have to be made manually)
}
其中有保持两个名称方案之间的符号等价的利益。例如:
Angle angle;
rotate(angle.yaw); // this is equivalent to rotate(angle.heading)
我在想,如果编译器会找出引用是不必要的,或者它是否会保持指针的结构。
另外,有没有更好的方法来为一个成员有两个名字?
我基本上是写同样的东西:)但是,不应该返回对实际属性的引用?否则,他们不能通过替代名称进行修改。实际上,应该提供两套方法:'const float&yaw()const;'和'float&yaw();'。然后它也将引用一个常量“角度”。 – betabandido 2012-07-25 13:58:08
@betabandido编辑我的代码走^ _ ^,我说这是'pseudocode'。显然,它不会完全像这样的^ _ ^(我做的BTW返回引用:-P) – Neal 2012-07-25 13:59:29
@LuchianGrigore啊啊啊! **伪代码** ___pseudocode___ _pseudocode_。 – Neal 2012-07-25 14:36:31