• c++中赋值运算符重载为什么要用引用做返回值?


    class string{

    public:

    string(const char *str=NULL);

    string(const string& str);     //copy构造函数的参数为什么是引用呢?  我相信大家都懂的!

    string& operator=(const string & str); //赋值函数为什么返回值是引用呢?

    ~string();

    };

    如果返回值时, return *this后马上就调用拷贝构造函数。


    但是万一由于没有定义拷贝构造函数  ,就会调用默认的拷贝构造函数。
    我们知道调用默认的拷贝构造函数时当在类中有指针时就会出错(浅拷贝)。


    所以如果你不用引用做返回时      就必须定义自定义的拷贝构造函数。

    当然咯  有指针成员时 必须要注意    自定义  拷贝构造了

    其实还是为了提高效率 和 减少零时对象的生成   不调用 拷贝构造函数!

  • 相关阅读:
    pip安装
    nfs
    源码方式安装软件
    自启动
    multipath
    linux永久添加和删除路由
    iscsi
    linux识别workstation磁盘的uuid
    centos镜像各种cd,dvd版本区别
    转:C# 中 MSCHART 饼状图显示百分比
  • 原文地址:https://www.cnblogs.com/zhangkele/p/7625216.html
Copyright © 2020-2023  润新知