您的位置:首页 > 其它

函数 千万不要返回“局部对象”的引用或者指针

2009-11-16 11:22 435 查看
请看下列两个代码

代码1:

1 const string manip(const string&);
2
3 void main()
4 {
5 string input;
6 cin >> input;
7 cout << "Your input is: " << manip(input)<< endl;
8 }
9
10 const string manip(const string& s)
11 {
12 string ret = s;
13 return ret;
14 }
15

代码2:

1 const string &manip(const string&);
2
3 void main()
4 {
5 string input;
6 cin >> input;
7 cout << "Your input is: " << manip(input)<< endl;
8 }
9
10 const string &manip(const string& s)
11 {
12 string ret = s;
13 return ret;
14 }
15

代码1是正确的。代码2的manifp函数,返回了局部对象的引用。运行时会出现不可预知的错误。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐