void print(const string& str){
cout << str <<endl;;
}
int main(){
print(string("asdf"));
}
私はこのように理解することができます 一時的な文字列オブジェクトが作成され、参照によって関数に渡されます。パラメータstrは実際にはその一時的な文字列オブジェクトとまったく同じオブジェクトです。関数のパラメータ文字列参照渡し
しかし、私はprint( "asdf");で呼び出しを置き換えてどうですか? この場合、まさに何が起こっていますか? 私は暗黙の変換が関係していることを知っています。しかし、それはいつ、どのように行われるのか分かりません。 一時的な文字列オブジェクトも作成されていますか?
同じことが暗黙的に行われます。 – songyuanyao