我在重载操作符“+”,“ - ”,“/”和“*”在我的程序中停留。 基本上我有一个对象,它是动态分配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