【发布时间】:2018-03-30 08:18:55
【问题描述】:
char*[] 对象可以通过 const 引用传递给函数 version2() 和 version 3(),这意味着 s2 是一个临时对象,等于“###”或“@@@”。
但是为什么临时对象 s2可以返回,而临时对象temp不能。
int main()
{
result = version2(input, "###");
cout << "Your string enhanced: " << result << endl;
result = version3(input, "@@@");
cout << "Your string enhanced: " << result << endl;
return 0;
}
// No Error
const string & version2(string & s1, const string & s2)
{
return s2;
}
// Error
const string & version3(string & s1, const string & s2)
{
string temp = s2 + s1 + s2;
return temp;
}
【问题讨论】:
标签: c++ pass-by-reference temporary-objects