• C++引用小结


    一、引用更多的是用于函数参数的传递,类似于指针,但比指针稍微方便
    形参的值通过函数改变了,那么返回的实参的值也会改变。
    简单记为(对某个变量的引用,则这个引用就是该变量的别名,对引用的操作,即对该变量的操作)

    #include <iostream>
    using namespace std;
    void show(int &b)
    {
        b=100;
    }
    int main(int argc, char** argv) {
        int a=200;
        cout<<a<<endl;
        show(a);
        cout<<a<<endl;
        return 0;
    }
    /*结果为200
           100
          
    若将show函数改为void show(int b)
    则结果为200
           200*/

    二、引用作为函数返回值

     

    引用作为函数的返回值,1.在主函数中可以用普通的变量=XXX(),Int &a=XXX(),都会警告,必须在XXX()函数中将返回变量的引用的变量修改为static类型警告消失

    2.XXX()可以当左值如:XXX()=1000;

    下面是对应的测试代码

    #include <iostream>
    using namespace std;
    int &show()
    {
        static    int a=20;
        return a;
    }
    int main(int argc, char** argv) {
        int b=show();          //若使普通变量=show()时,无论show()在主函数怎么赋值,普通变量依旧等于最初传到主函数的show()值。
     // int &b=show();         //若使用引用=show()时,show()的值在主函数改变会影响引用的改变。
        cout<<b<<endl;         
        show()=1000;           //引用作为函数的返回值时,可以作为左值
        cout<<b<<" "<<show();
        return 0;
    }

    可以简单理解,函数返回值是引用时,假设存在一个临时变量temp,则&temp=函数的返回值如上面程序的a,
    传到主函数时,1.若为普通变量x,则x=temp;(X改变不影响原函数返回值)
                             2.若为引用x,则&x=temp;(X改变会影响原函数的返回值)
    通过这么思考,可以发现引用作为函数的返回值和一般引用的用法很相似,差别不大。

     三、对常量的引用需要加const

    int &a=30;//错误
    const int &a=30;//正确

     四、当成员函数返回对象本身,且对一个对象连续调用成员方法,每次都会改变对象本身,成员方法需要返回引用

    如test &show()

    如:test &t()
    {
      return *this;
    }
    
    main函数中
    test t1;
    t1.t().t();

     

  • 相关阅读:
    div定位
    学习进度条(第十周)
    学习进度条(第九周)
    软件工程个人作业--找水王
    个人NABCD
    梦断代码阅读笔记01---死定了
    进度条(第八周)
    学习进度条(第七周)
    软件工程结对开发作业02---二维数组求最大连通子数组
    软件工程结对作业01--四则运算Web版
  • 原文地址:https://www.cnblogs.com/god-for-speed/p/10876359.html
Copyright © 2020-2023  润新知