2015-12-07 95 views
0

我想重載operator + =上一類名爲電影:錯誤而超載運營商+ = C++

Movie& operator+=(const Movie& other) 
{ 
*this=*this+other; 
return*this;} 

給了我錯誤Movie.h:47:10:錯誤:與「電影&電影:: operator + =(const Movie &)' 我該如何加載它..?

+2

這個定義在哪裏?課內還是外面?另外'operator +'通常用'operator + ='來定義,而不是相反。 – Kevin

+1

什麼是完整錯誤? – hlt

+1

是否爲Movie對象定義了operator +?如果是這樣,你可以發佈它的定義嗎? – Tal

回答

1

儘管存在報告問題,但代碼在結構上不正確。它在+ = operation中調用一個賦值操作符,這不是必需的,而只是一個性能拖拽。 相反,operator +=應該正確編碼,修改的對象和operator +用+ =表示。

+0

so inside block i have * this + = other ..? 還是什麼? – aviadm71

+0

@ aviadm71你的'operator + ='函數應該做你的'operator +'函數當前所做的事情,而不是爲了'this'而不是一個新的對象。然後'operator +'應該在內部使用'operator + ='(到一個新的對象)。 – Kevin

+0

我仍然沒有得到它..我必須在塊內輸入什麼? 我試了幾個版本,沒有編譯 – aviadm71