1. ホーム
  2. c++

[解決済み] 関数のパラメータに 'const' を使用する

2022-03-22 01:52:29

質問

をどこまで使うか? const ? ただ単に関数を作るだけですか? const 必要なときに使うのか、それとも徹底的に使いまくるのか? 例えば、一つのブーリアン引数を取る単純なミューテーターを想像してください。

void SetValue(const bool b) { my_val_ = b; }

それは const 実際に役に立つのでしょうか? 個人的にはパラメータも含めて広範囲に使うことを選ぶのですが、この場合は意味があるのでしょうか?

を省略できることにも驚きました。 const を関数宣言のパラメータから削除しても、関数定義に含めることは可能です。

.hファイル

void func(int n, long l);

.cppファイル

void func(const int n, const long l)

これには何か理由があるのでしょうか?ちょっと異常な気がするのですが。

解決方法は?

その理由は const は、データのコピーに対して動作しているため、関数内で局所的にしか適用されません。つまり、関数のシグネチャはどうせ同じものなのです。しかし、このようなことを頻繁に行うのは、おそらく悪いスタイルでしょう。

個人的には const ただし、参照とポインタのパラメータを除く。コピーされたオブジェクトの場合は、関数内で意図を伝えることができるため、より安全ではありますが、実際には重要ではありません。これは本当に判断材料になります。私は const_iterator しかし、何かでループしているとき、それを変更するつもりはないので、人それぞれだと思います。 const 参照型に対する正しさは厳密に維持されます。