15.赋值运算符为什么返回类的引用?不是引用怎么办?
生活随笔
收集整理的這篇文章主要介紹了
15.赋值运算符为什么返回类的引用?不是引用怎么办?
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
賦值運算符為什么返回類的引用?不是引用怎么辦?
class string{public:string(const char *str=NULL);string(const string& str); //copy構造函數的參數為什么是引用呢? 我相信大家都懂的!string& operator=(const string & str); //賦值函數為什么返回值是引用呢?~string();};如果返回的是值時, return *this 后馬上就調用拷貝構造函數。
但是如果沒有定義拷貝構造函數??,就會調用默認的拷貝構造函數。
我們知道調用默認的拷貝構造函數時當在類中有指針時可能會出錯(淺拷貝)。
當在連續賦值的場景中,所以如果你不用引用做返回時,會調用拷貝構造函數,而且必須定義自定義的拷貝構造函數。
總結
以上是生活随笔為你收集整理的15.赋值运算符为什么返回类的引用?不是引用怎么办?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 14. 函数返回值为引用?
- 下一篇: 16.C++中的this指针