不能返回指向本地变量的引用,因为当函数退出时,变量将会被销毁,引用将不再有效。改为返回值而不是引用,或者将s0
声明为静态变量。示例代码如下:
#include
std::string& getText() {
std::string s0 = "Hello World"; //声明并初始化本地变量
return s0; // 错误:不能返回指向本地变量的引用
}
//修复方法一:返回值而不是引用
std::string getText() {
std::string s0 = "Hello World";
return s0; // 返回值,可以正常工作
}
//修复方法二:将s0声明为静态变量
std::string& getText() {
static std::string s0 = "Hello World";
return s0; // 可以返回静态变量的引用
}