原文:重載=運算符為何要返回一個引用?

一個自定義類,如果沒有重載其 運算符,那么編譯器將自動生成一個。但是此編譯器自動生成的重載函數可能不安全。這是因為它采用了所謂的 淺拷貝 ,也就是對於指針而言,它拷貝的是指針的值,而不是其指向的內存空間。那么這個內存空間就有了兩個指針指向它,且類對象要析構兩次,但是內存空間只能被釋放一次,那么第二次就會出現訪問錯誤。 要避免這種 淺拷貝 問題,就需要重載 運算符。這是一個二元運算符,函數名和參數 ...

2015-07-17 13:25 0 2797 推薦指數:

查看詳情

c++運算符重載及其返回引用

運算符重載為成員函數 重載為類成員的運算符函數定義形式 函數類型 operator 運算符(形參) { ...

Sun May 10 05:36:00 CST 2020 0 1753
C++ 重載運算符返回值 和 返回引用的原因

原因是: +,-,*等返回不了引用,比如+運算符,可以如下重載(為了簡單,假設A 只有int x;int y) A operator+(A a,A b) {A sum; sum.x=a.x+b.x; sum.y=a.y+b.y; return sum; } 分析不能用 ...

Thu Oct 24 20:41:00 CST 2019 0 667
c++中有些重載運算符為什么要返回引用

  事實上,重載運算符返回void、返回對象本身、返回對象引用都是可以的,並不是說一定要返回一個引用,只不過在不同的情況下需要不同的返回值。 那么什么情況下要返回對象的引用呢? 原因有兩個:   允許進行連續賦值 防止返回對象(返回對象也可以進行連續賦值(常規的情況 ...

Sat Mar 16 23:26:00 CST 2019 0 1174
c++中有些重載運算符為什么要返回引用

  事實上,我們的重載運算符返回void、返回對象本身、返回對象引用都是可以的,並不是說一定要返回一個引用,只不過在不同的情況下需要不同的返回值。 那么什么情況下要返回對象的引用呢? 原因有兩個:   允許進行連續賦值 防止返回對象(返回對象也可以進行 ...

Wed Sep 14 19:31:00 CST 2016 4 16330
運算符重載

運算符重載運算符能做一些原來做不了的事情,方便它的使用。 操作數:運算符操作的數字,如1+1,加號操作2個數,為雙目運算符 一、運算符重載的概念 1、什么是運算符重載: 1、重載,重新載入,就比如之前那講的函數重載,對一個已有的函數賦值一個新的定義,因此同一個名 字就可以 ...

Wed Nov 17 04:11:00 CST 2021 0 128
運算符重載

什么是運算符重載? 運算符與類結合,產生新的含義。 為什么要引入運算符重載? 作用:為了實現類的多態性(多態是指一個函數名有多種含義) 怎么實現運算符重載? 方式:類的成員函數 或 友元函數(類外的普通函數) 規則:不能重載運算符 ...

Tue Jun 04 16:31:00 CST 2019 0 522
 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM