ゲームが作れるようになるまでがんばる日記

ゲーム制作のことを中心にゲームに関することを書いています

関数の戻り値にconst

Effectvie C++ 第1章3項
自分で定義したある型に掛け算の演算子を定義したとする。

class Test {...};

const Test operator*(const Test& lhs, const Test& rhs);

この掛け算の演算子の関数にもconstを付けておけば、次のようなタイプミスを防ぐことができる。

Test a,b,c;

(a*b) = c;

if (a*b = c) ...

2番目の比較するつもりがタイプミスで代入になってしまうというのはやってしまいがち。これが組み込み型ならコンパイルエラーとなってくれる。