C++に触れずに何年も経ってから、私はそれに戻ってテキストブック(Sutherland、Bruce、「ゲーム開発のためのC++の学習」(59ページ) 。Apress。Kindle版。 ")。 は、私は2つの簡単な質問があります。一例では参考値と "const"値の受け渡し
1) を、この本は、関数を呼び出すために次のコード行を使用しています:
string playerInput;
GetPlayerInput(playerInput);
と機能自体は次のように定義されます
void GetPlayerInput(string& playerInput)
{
cin >> playerInput;
}
質問: "playerInput"は "string &"として渡されます。本当に必要ですか?なぜ、これは我々だけ関数は文字列を返すようにし、このようにそれを行うことができたときに参照として渡されている:
string playerInput;
playerInput = GetPlayerInput();
そして:
string GetPlayerInput()
{
cin >> playerInput;
return playerInput;
}
が、これは単なる文体の選択をするか、私は何かが欠けていますここに?
'void SetName(const std::string& name);'
なし説明:
2)ユーザ名を取得するには、クラスのアクセサメソッドは次のように定義されました。この "const"のことはどうですか?私は研究をしましたが、もっと混乱しました。文字列をパラメータとして渡すときに、なぜそれが必要なのでしょうか(また参照としても??)
ありがとうございました!
にここで素敵なリストである:あなたが例えばのように、内部でとにかくパラメータをコピーするとき
値でパスを使用することをお勧めします唯一のケースです[C++の書籍](http://stackoverflow.com/questions/388242/the-definitive-c-book-guide-and-list)を参照してください。 Scott Meyersの本でよく説明されています。 –
は、値渡しの概念を参照し、参照渡しを行います。値渡しをすると、コピーコンストラクタ(必要に応じて)とconstを不必要に書く必要が生じることがあります。そして1つの提案として、Scott Meyersの本 –
に感謝してください。ブックは次に私の "読む"リストにある:-) –