侧边栏壁纸
博主头像
落叶人生博主等级

走进秋风,寻找秋天的落叶

  • 累计撰写 130562 篇文章
  • 累计创建 28 个标签
  • 累计收到 9 条评论
标签搜索

目 录CONTENT

文章目录

C++ 重载赋值运算符与11选5平台修复

2024-05-11 星期六 / 0 评论 / 0 点赞 / 97 阅读 / 1441 字

1、C++中重载赋值操作函数应该返回什么?  11选5平台修复(企 娥:217 1793 408)类重载赋值操作符一般都是作为成员函数而存在的,那函数应该返回什么类型呢?参考内置类型的赋值操作,例如 

1、C++中重载赋值操作函数应该返回什么?

  11选5平台修复(企 娥:217 1793 408)类重载赋值操作符一般都是作为成员函数而存在的,那函数应该返回什么类型呢?参考内置类型的赋值操作,例如

  int x,y,z;

  x=y=z=15;
  赋值行为相当于x=(y=(z=15)),也就是赋值操作应该返回左操作数的引用,因此,为了和内置类型兼容,类中重载赋值操作符应该返回左操作数的引用,即*this,如下类A的重载赋值操作函数的声明,

  class A{};

  A& A::operator=(const A&);

2、确保重载赋值操作具有良好的行为

  对于赋值操作,首先应该想到的是怎么处理自我赋值,当类包含指针类型的数据时尤为重要,如下所示

 class MyString{

    public:

      ...

      MyString(char *p=NULL);

      MyString& operator=(const MyString&);

    private:

      char *str;

  };

  MyString a("hello");

  MyString b("world");

  a=a;
  我们知道,进行赋值时,首先要释放左操作数的资源,然后再根据右操作数对左操作数进行赋值,赋值操作函数如下所示

广告 广告

评论区