*这和C ++中的运算符重载

时间:2017-12-25 05:19:55

标签: c++ operator-overloading this

下面的代码是Polynomial类中的一个工作函数。该函数重载减号运算符以允许通过对象减去两个多项式方程。涉及函数setArray和getArray是因为用户输入了一个双精度数组来表示系数。

我理解运算符重载在没有* this的情况下如何在C ++中工作,但是我对在代码片段中使用* this完成重载的方式感到困惑。

将对象(多项式方程)设置为等于解除引用的指针是什么意思?

Polynomial Polynomial::operator-(int rval2) {
 Polynomial equation = *this;
 equation.setArray(equation.getArray() - rval2);
 return equation;
}

根据我的理解,指针指向一个地址,可以反复重新分配一个新地址。取消引用指针允许访问当前地址的值。

1 个答案:

答案 0 :(得分:0)

来自* this的赋值调用一个复制构造函数,然后修改该对象并返回该本地对象的副本。