3.1_运算符重载

运算符重载的实质是编写以运算符作为名称的函数。

运算符函数的格式如下:

返回值类型 operator 运算符(形参表)
{
    ...
}

包含被重载的运算符的表达式会被编译成对运算符函数的调用,运算符的操作数成为函数调用时的实参,运算符的结果就是函数的返回值。

#include <iostream>
using namespace std;
class Complex
{
public:
	double real, imag;
	Complex(double r = 0.0, double i = 0.0) : real(r), imag(i)
	{
	}
	Complex operator-(const Complex &c);
};
Complex operator+(const Complex &a, const Complex &b)
{
	return Complex(a.real + b.real, a.imag + b.imag);
}
Complex Complex::operator-(const Complex &c)
{
	return Complex(real - c.real, imag - c.imag);
}
int main()
{
	Complex a(4, 4), b(1, 1), c;
	c = a + b;
	cout << c.real << "," << c.imag << endl;
	cout << (a - b).real << "," << (a - b).imag << endl;
	return 0;
}

23行可以认为是

c = operator+(a, b);

调用函数operator+()返回值是一个Complex对象。

25行的a - b可以理解为

a.operator-(b);

即为对象a,调用了方法operator-()参数为b

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值