0

例: Class という名前のクラスがあり、データ メンバーstd::string m_nameint m_value があります。

不必要なコピーを避けるために、私はこれを行います。

const std::string& Class::name() const;

関数の一貫性を保つために、プリミティブ型に対してもこれを行うことは受け入れられますか?

const int& Class::value() const;
4

1 に答える 1

0

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

それはあなたの選択です。

于 2012-09-10T14:10:35.550 に答える