• C++返回引用的需求


    1.重载+=操作符返回*this或者某个参数的引用可以方便链式调用,比如C++流操作就是cout<< a << b << c这样的,就是靠不停返回stream的引用

    类似于这样:

    ostream &operator<<(ostream &os,const String &st)
    {
    	os<<st.str;
    	return os;
    }
    

      

    2.返回类成员变量的引用,最好加const,不破坏类成员的封装性

    如下:复制于 C++ 中引用有什么用? - 谢之易的回答 - 知乎 https://www.zhihu.com/question/34267829/answer/58414818

     

    3. 还有就是一般容器类里面主要是std::vector、std::map等STL容器的operator[],不返回引用,无法修改a[x]的值,为了同时支持a[x]的取值和a[x]=v的赋值两种操作,就需要a[x]返回一个左值,

    用指针的话你得解引用才能成为一个左值表达式,不直观至于其他情况很多时候改用指针也不算很不方便,传闻C++引入引用语法主要就是因为

    上面这个原因在不支持引用却需要支持[]运算符重载的语言中,也有其他实现方式,但会复杂一些,例如python是将[]的取值和赋值分开成两个重载方法来定义

     
  • 相关阅读:
    windows下面Nginx日志切割
    C#通过DocX创建word
    leetcode 189 Rotate Array
    leetcode 172 Factorial Trailing Zeroes
    leetcode 169 Majority Element 冰山查询
    leetcode 165 Compare Version Numbers
    leetcode 160 Intersection of Two Linked Lists
    【windows-》linux】SCP
    【设计】B端和C端区别
    【Flask】部署
  • 原文地址:https://www.cnblogs.com/tangmiao/p/11217657.html
Copyright © 2020-2023  润新知