const std::string& f(){
std::string s = "Hello";
return s + s;
}
int main() {
std::string s = "Hello";
std::string& s1 = s + s;
s1 += "!";
std::cout << f();
}
我对我编写的这段代码有几个问题。
为什么即使 s1 是对临时对象的非常量引用,我仍然可以访问和修改它?
为什么 f 给我一个运行时错误?我认为 const 会延长临时对象的生命周期?