ここに初心者!
私はコードを読んでいて、作者がメンバー関数を次のように頻繁に書いているのを見ています
const int func (const scalar& a) const
// etc
ここに3つのconstがあることがわかります。これで、オブジェクトaを変更しないことを目的とした真ん中のconstscalar&aがわかりましたが、他の2つのconstはどうでしょうか。
何とかを変えずに保護するために、これを常に行うのは良い習慣ですか?
どうもありがとう!
ここに初心者!
私はコードを読んでいて、作者がメンバー関数を次のように頻繁に書いているのを見ています
const int func (const scalar& a) const
// etc
ここに3つのconstがあることがわかります。これで、オブジェクトaを変更しないことを目的とした真ん中のconstscalar&aがわかりましたが、他の2つのconstはどうでしょうか。
何とかを変えずに保護するために、これを常に行うのは良い習慣ですか?
どうもありがとう!
投稿したコードは無効です。コンパイルされません。しかし、あなたが考えるなら
class MyClass {
const int& func (const scalar& a) const {
// ...
}
};
1つ目const
は、戻り値が一定(つまり不変)であることを指定します。2番目のconst
(const scalar& a
)は、関数が引数の値の値を変更しないことを指定しますa
。3番目のconstは、それが定数メンバー関数であることを指定します。つまり、インスタンス自体func
を変更しません。MyClass
まだ誰も言及していないので:違いはまったくありません
const int some_function();
と
int some_function();
onスカラーリターンタイプ(const
などint
)は無視されます。それはクラスタイプにのみ重要です。関連している