私はクラスのメンバ関数に対して、constを付けられるなら付けるというコーディングをしていました。
つまり、メンバを変更しないものには必ずconstを付けていました。
以下のようなクラスの場合、メンバ変数は変更しないものの、その後のクラスの挙動は変わっていしまいます。
constは付けるべきでしょうか?
constを付けるべきか
Re: constを付けるべきか
場合にもよるとおもいますが、そもそも論で
そこが気になるのであればラッパを一回かませればいいんじゃないかと思います。
setColorがconst修飾されていれば、コンパイルエラーになります。
そこが気になるのであればラッパを一回かませればいいんじゃないかと思います。
setColorがconst修飾されていれば、コンパイルエラーになります。
Re: constを付けるべきか
DXライブラリのように、内部状態を持つライブラリは場合によって使い難いですよね。
GRAMさんも「場合による」と仰るように、constの意味が曖昧なのが問題なんですね。
「意味的な不変性」と「ビットレベルでの不変性」ですね。
個人的に普段は、constが付いたメンバ関数は外から見た挙動を変えないことを期待するので、「意味的な不変性」支持派ですかね。
GRAMさんも「場合による」と仰るように、constの意味が曖昧なのが問題なんですね。
「意味的な不変性」と「ビットレベルでの不変性」ですね。
個人的に普段は、constが付いたメンバ関数は外から見た挙動を変えないことを期待するので、「意味的な不変性」支持派ですかね。