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;
我們知道,進行賦值時,首先要釋放左操作數的資源,然后再根據右操作數對左操作數進行賦值,賦值操作函數如下所示
轉載于:https://blog.51cto.com/13890803/2151191
總結
以上是生活随笔為你收集整理的C++ 重载赋值运算符与11选5平台修复的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【晒出你的第83行代码】剑指星辰,两位开
- 下一篇: C++语言(11)——C++类成员函数调