您当前的位置: 首页 >  c++

小林coding

暂无认证

  • 1浏览

    0关注

    167博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

C++ 运算符重载的基本概念

小林coding 发布时间:2019-12-01 21:41:53 ,浏览量:1

01 运算符重载的需求

C++ 预定义的运算符,只能用于基本数据类型的运算:整型、实型、字符型、逻辑型等等,且不能用于对象的运算。但是我们有时候又很需要在对象之间能用运算符,那么这时我们就要重载运算符,使得运算符能用于对象之间的运算。

比如,在数学上,两个复数可以直接进行+、-等运算,但在C++中,直接将+或-用于复数对象是不允许的。有时会希望,让对象也能通过运算符进行运算。这样代码就更简洁,也容易理解。

例如:

complex_a 和 complex_b 是两个复数对象,求两个复数的和,希望的能直接写成:complex_a + complex_b

这时我们就需要对 + 号运算符进行重载。

02 运算符重载的形式

运算符重载的实质就是函数重载,可以重载为普通函数,也可以重载为成员函数。运算符重载的基本形式如下:

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

下面举个例子,实现对复数对象的 +- 运算符重载:

class Complex // 复数类
{
public:
	// 构造函数,如果不传参数,默认把实部和虚部初始化为0
	Complex(double r = 0.0, double i = 0.0):m_real(r),m_imag(i) {  }

	// 重载-号运算符,属于成员函数
	Complex operator-(const Complex & c)
	{
		// 返回一个临时对象
		return Complex(m_real - c.m_real, m_imag - c.m_imag);
	}

	// 打印复数
	void PrintComplex()
	{
		cout             
关注
打赏
1659932071
查看更多评论
0.0360s