c++返回值 注意事项

1.不要返回指向局部变量或临时对象的引用。函数执行完毕后,局部变量和临时对象会消失,引用将指向不存在的数据

2.返回指向const对象的引用 

  使用const引用的常见原因是旨在提高效率,但对于何时采用这种方式存在一些限制。

  如果函数返回传递给它的对象,可以通过返回引用来提高效率。

  A Max(const A & a1,const A &a2)

  {

    if(a1.v>a2.v)

      reutrn a1;

    else

      return a2;

  }

  const A & Max(const A &a1,const A & a2)

  { 

    if(a1.v>a2.v)

      reutrn a1;

    else

      return a2;

  }

第一个方法返回将调用复制构造函数A(const A &a);而第二个方法返回引用不会,因此第二个版本所做的工作更少,效率更高

3. 不能把数组做为返回值

posted @ 2014-01-01 12:18  li-peng  阅读(380)  评论(0编辑  收藏  举报