>>58

finalは変数が初期化された後更新されないことを保証する機能で、
変数が指すオブジェクトが更新されないことは保証しないから。

class Bar;
class Foo {
 private: Bar mObj1;
 public: Bar & Obj1() const {
  return mObj1;
 };
}

みたいのと等価なコードはfinalでは書けないでしょ。

ここでポイントは、
・mObj1がFooの利用者から全く更新されないことを保証できること
・publicなメンバ変数と同様にObj1()がmObj1を指していること
・Fooの内部からはmObj1を好き勝手に変更できること
かな。

って良く考えると、これもいろいろと抜けがあるなぁ。
Obj1()のポインタをとればmemcpyとか使って更新できるし、
どっか他で捕まえておかれる可能性を考えればFooの内部であんまり好き勝手
できないだろうし・・・

もしかしてこういう可能性を考えると、constが無意味になるから無くしたとか・・・