[C++]运算符重载和普通函数区别

1、定义复数相加函数

此函数将两个复数相加

this->real也可以写成(*this).real

Complex Complex:: Complex_add(Complex& c2) {//让复数相加
	Complex c;
	c.real = this->real + c2.real;
	c.imag = this->imag + c2.imag;
	return c;
}

定义重载运算符“+”的函数

Complex Complex::operator+(Complex& c2) {//让复数相加
	Complex c;
	c.real = real + c2.real;
	c.imag = imag + c2.imag;
	return c;
}

在 C++ 中,this 指针是一个指向当前对象的指针,它可以用于访问当前对象的成员。在类的成员函数中,可以使用 `this->` 来显式地引用当前对象的成员。

然而,在重载运算符时,你已经在类的作用域内定义了运算符函数。在运算符函数中,成员函数所属的对象已经明确地传递给函数作为参数(`c2`),因此你可以直接访问成员变量 `real` 和 `imag`,而不需要使用 `this->`。

这意味着,对于重载的 `operator+`,你可以直接使用 `real` 和 `imag`,而不必使用 `this->real` 和 `this->imag`。编译器会将其解析为当前对象的成员变量。

你可能感兴趣的:(c++,开发语言)