次のコードがあるとします。
#include <string>
using namespace std;
string GetPath(const string & aString);
int main()
{
string dave = "hello";
string tom = GetPath(dave);
}
string GetPath(const string & aString)
{
//Do stuff
//If function fails then return original string
return aString;
//or should it be like this
return string(aString)
}
文字列を関数に渡す必要がある状況があり、その関数がタスクに失敗した場合は、渡された文字列を単純に返したいと思います。
私の質問は、aString
参照によって渡されたときに返されるだけの動作について少し確信が持てないということです。この種のコードは避けるべきですか?もしそうなら、それはなぜですか? 返品できてビックリしました(もしかしたらコピーになるのでしょうか?)。
安全のために、返される新しいオブジェクトを作成しましたreturn string(aString)
が、これもやり過ぎで必要ないかもしれません。
明確化をいただければ幸いです。
ありがとう