C++は参照タイプを返します(一)...

1608 ワード

//ex1
#include
using namespace std;
const string &shorterString(const string &str1, const string &str2)
{
    return str1.size() <= str2.size() ? str1 : str2;
}
int main()
{
    string s1 = "hello",s2 = "girl";
    const string &s3 = shorterString(s1,s2);
    cout<return 0;
}

注意:1.return str1.size() <= str2.size() ? str1 : str2; いったい何を返したの?答え:s 1とs 2の短い者の参照を返します.
2.ここで関数の戻り値タイプは定数参照ですが、string&非常量参照に変更できますか?答え:いいえ、パラメータstr 1のため、str 2は戻り値タイプが定数参照でなければならないことを決定しました.
3.上記の例では、主関数のs 3はs 2の参照、すなわちs 2の別名である.では、s 3を変えることでs 2を変える目的を達成することができますか?答え:いいえ、s 3は定数参照ですが、次のように変更できます.
string &shorterString(string &str1, string &str2)

転載先:https://www.cnblogs.com/tolic/p/7142218.html