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


    请看下列两个代码

    代码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函数,返回了局部对象的引用。运行时会出现不可预知的错误。

  • 相关阅读:
    JasperReport
    iconv
    Groovy
    Groovy
    file
    PowerShell 自动合并 db first 的dbcontext
    获取存储过程的名称和信息
    傻瓜式同步svn到git
    强大的生成pdf,word,等等文档工具
    iphone x 底部横条适配
  • 原文地址:https://www.cnblogs.com/younes/p/1603715.html
Copyright © 2020-2023  润新知