考虑代码片段
Foo FuncBar()
{
return Foo();
}
// some where else
const Foo &myFoo = FuncBar();
此处,函数Foo()
中临时对象FuncBar()
的生命周期通过引用const myFoo
来扩展。
现在在下面的代码片段中
class Sandbox
{
public:
Sandbox(const string& n) : member(n) {}
const string& member;
};
int main()
{
Sandbox sandbox(string("four"));
cout << "The answer is: " << sandbox.member << endl;
return 0;
}
这里使用const n
的引用没有延长字符串“4”的生命。为什么不延长?
我查看了一些链接,例如this和this。仍然不清楚这一点。