C++中返回引用和返回值的区别

    技术2022-05-20  30

    C++中返回引用和返回值的区别

          今天室友在研究返回引用和返回值的区别,呵呵,在网上GOOGLE了一下,这下明白了。

          int set()

          {

                   return a;

          }

          此时生成的是变量a的一个拷贝,即生成了一个临时变量,当这个变量使用完毕之后,变量就被销毁了,所以这种返回不能用作左值运算,如:set() = 5;这是不正确的。

            int& set()

          {

                   return a;

          }

         在第二个例子中,返回的是引用,那么,就相当于返回的是变量a的别名,就可以对该变量操作,如赋值等等。set() = 5;是正确的。

         但是在引用返回时得注意一个问题,就是不能返回局部变量的引用,如:

     

            int& set()

          {

                        int a;

                        return a;

          }

    此时就会调用出错,因为a是临时变量,函数结束是就自动销毁了,不能再创建别名了。但是将int & 改成int就可以了。

    转自:

    http://icymarywei.blog.163.com/blog/static/127508102200992441232284/

     


    最新回复(0)