1、C++中重载赋值操作函数应该返回什么?
依兰网站建设公司创新互联公司,依兰网站设计制作,有大型网站制作公司丰富经验。已为依兰近1000家提供企业网站建设服务。企业网站搭建\外贸网站建设要多少钱,请找那个售后服务好的依兰做网站的公司定做!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;
我们知道,进行赋值时,首先要释放左操作数的资源,然后再根据右操作数对左操作数进行赋值,赋值操作函数如下所示
另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。