c++函数返回
原创
©著作权归作者所有:来自51CTO博客作者zzxiaoma的原创作品,请联系作者获取转载授权,否则将追究法律责任
return 语句终止当前正在执行的函数并将控制权返回到调用该函数的地方。
函数返回有2种,一种没有返回值,一种有返回值。
没有返回值的return语句只能用在返回类型是void的函数中。返回void的函数不要求非有return语句,函数最后一句会隐式执行return。
void函数想在中间提前退出可以使用return语句。
有返回值的return语句返回的值要和函数返回类型相一致或可以转换。
不要返回局部对象的引用或指针,函数完成后所占用的存储空间也随之释放掉,局部变量的引用将指向不再有效的内存区域
const string &manip(){
string ret;
//修改ret的值
if (!ret.empty())
return ret; //返回局部对象的引用错误
else
return "Empty"; //返回局部临时量也是错误
}
函数返回的是引用类型时得到左值。
char &get_val(string &str, string::size_type ix){
return str[ix];
}
string s("hello world");
get_val(s,0) = 'H';
返回值是引用,所以放到左边。
函数可以返回花括号包围的值的列表
#include <iostream>
#include <vector>
#include <string>
using std::vector;
using std::string;
vector<string> process() {
string expected = "abc";
if (expected.empty()){
std::cout <<"empty" <<std::endl;
return {};
} else if (expected== "abc"){
return {"func","okay"};
} else {
return {"func","okay","exp"};
}
}
int main() {
process();
}