【C++】 const だけでメシが3杯食えちゃうスレ
■ このスレッドは過去ログ倉庫に格納されています
006052
NGNGfinalは変数が初期化された後更新されないことを保証する機能で、
変数が指すオブジェクトが更新されないことは保証しないから。
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が無意味になるから無くしたとか・・・
■ このスレッドは過去ログ倉庫に格納されています