最近在看 C++ Primer 在函数返回值和类这里有点疑问,不说废话,直接上问题。
问题:
const string &shorterString( const string &s1, const string &s2 )
{
return s1.size() <= s2.size() ? s1 : s2;
}
本人的疑问是假如返回的不是引用:
问题:
const string &shorterString( const string &s1, const string &s2 )
{
return s1.size() <= s2.size() ? s1 : s2;
}
本人的疑问是假如返回的不是引用:
您看本人这么理解对不对,就本人的例子而言,返回引用类型,就是返回s1或s2其中的一个;返回string类型,是返回对s1或s2原字符串的一个拷贝值。也就是说,假如这个返回值作右值的话,这两种方式都可以实现。这样理解能否正确?
没错,在这里只有作为左值才有区别(要测试的话记得去掉const)