在運算符重載期間總是編寫自己的拷貝構造函數是否安全?處理運算符超載時的懸掛指針/引用
Complex Complex::operator+(const Complex& other)
{
Complex local ;
local.result_real = real + other.real;
local.result_imaginary = imag + other.imag;
return local ;
}
大部分時間我都看過上面的格式,而不是返回它作爲參考。
我們可以採取拇指規則就像 1-通過引用總是傳遞給函數的參數。 2-總是通過引用返回對象。
運算符重載中是否有任何特殊情況,我們必須僅按值返回對象?
您的意思是:永遠不要通過引用返回(除非您確切知道您在做什麼)。 – melpomene
這取決於你的重載是什麼操作符,請參閱[操作符重載](http://stackoverflow.com/questions/4421706/operator-overloading),它會回答你所有的問題和更多。 –
通過引用返回本地將導致未定義的行爲。唯一可以通過引用返回對象的情況是:1)通過方法返回當前對象。 2)你創建一個新對象並返回它的引用,處理它的刪除。 –