欢迎光临
我们一直在努力

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

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;
  我们知道,进行赋值时,首先要释放左操作数的资源,然后再根据右操作数对左操作数进行赋值,赋值操作函数如下所示

赞(0)
【声明】:本博客不参与任何交易,也非中介,仅记录个人感兴趣的主机测评结果和优惠活动,内容均不作直接、间接、法定、约定的保证。访问本博客请务必遵守有关互联网的相关法律、规定与规则。一旦您访问本博客,即表示您已经知晓并接受了此声明通告。