我正在製作一個涉及三維座標的庫,並發現三維角度的組件有兩個名稱:偏航俯仰滾動和航向滾動,海拔銀行類參考成員指向同一類中的其他成員
所以,我提出以下(在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