我在重載操作符「+」,「 - 」,「/」和「*」在我的程序中停留。 基本上我有一個對象,它是動態分配double值的數組。 我有整個程序,但我無法通過這些重載。C++重載操作符
我的構造是這樣的:
table::table(int size) {
this->size = size;
tab = new double[size];
count++;
}
我已經寫了這樣的事情:
table & table::operator-(const table &tab3)
{
table * tab_oper2 = new table(size);
for(int i=0; i< tab3.size; i++)
{
(*this).tab[i] -= tab3.tab[i];
}
return *this;
}
一般的作品,但它不是一般做的好方法。 我的老師告訴我試着將(* this)切換到* tab_oper2,將它作爲參考返回,但是 它不起作用。 請有人告訴我如何正確地做到這一點嗎?
不要在'operator-'中修改'this'。用'table tab_oper2'之類的東西創建一個新的'table'。操作新表並按值返回。 – 2013-04-23 17:33:11
或者,執行'operator- ='修改'this'。然後,只要該類型是可複製的,就可以很容易地實現'operator-'。 – 2013-04-23 18:18:08