const関数
C++のメンバ関数で、constのあるのとないのが二つ宣言されていて、中身は同じだったりする。
inline float GetLength(void) const;
inline float GetLength(void);
これってどういう意図があるのかよくわからん。
Effective C++に理由が書いてあった。
上の例は間違いかも。
■結論?
クラスのメンバ関数がメンバ変数の参照やポインタを返す時に、
thisがconstの場合はそのリターン値もconstにしたい、
そうでない場合はそのリターン値はconstにしたくない。
ということで、こんな感じになるのかな。
public:
float* Get() { return mValue; } // thisがconstじゃない時こっちがよばれる
const float* Get() const { return mValue; } // thisがconstの時こっちがよばれるprivate:
float mValue[4];