例: Class という名前のクラスがあり、データ メンバーstd::string m_nameとint m_value があります。
不必要なコピーを避けるために、私はこれを行います。
const std::string& Class::name() const;
関数の一貫性を保つために、プリミティブ型に対してもこれを行うことは受け入れられますか?
const int& Class::value() const;
例: Class という名前のクラスがあり、データ メンバーstd::string m_nameとint m_value があります。
不必要なコピーを避けるために、私はこれを行います。
const std::string& Class::name() const;
関数の一貫性を保つために、プリミティブ型に対してもこれを行うことは受け入れられますか?
const int& Class::value() const;
API のユーザーにとっては違いはありません。彼のコードは次のようになります
Class c;
c.value(1940);
int x = c.value();
どのように書いても構いません。
あなたが参照を返した場合に彼ができるかもしれないことの1つは(あなたが望むかもしれないし、望まないかもしれません)
const int &x = c.value();
int &k = const_cast<int &>(x);
k++; // will change the internals of your object
それはあなたの選択です。