C++学习笔记03--运算符重载(运算符符号篇)

在C++中,对 int,float,double 类型数据进行四则计算时,我们常常用到 + , - ,* ,/ 这四种运算符。但是如果我们要对我们自定义的类型进行 +, -, *, /运算时,我们要如何进行呢?
实际上我们可以通过构造函数来进行,但是当运算多次使用时,多次抽调函数是一件很麻烦的事情。所以C++中添加了 运算符重载(关键字**operator + 运算符**) 这样一个功能,可以通过一次定义,就可以达到对自定义类型数据的 +,-,*,/ 运算。
接下来举例说明:
#include<iostream>
using namespace std;

//在此处,我构建了一个自定义的Person类
class Person
{
public:
	//此处构建了两个Person类的属性
	int m_A;
	int m_B;
	
	//成员函数运算符重载,用 operator + 重载 “+” 运算符
	Person operator+ (Person& p) {
		Person temp;
		//定义Person类中“ + ”运算符的具体操作
		temp.m_A = this->m_A + p.m_A;
		temp.m_B = this->m_B + p.m_B;
		return temp;
	}
};

int main() {
	//定义两个Person实例 p1 , p2
	Person p1;
	p1.m_A = 10;
	p1.m_B = 10;
	Person p2;
	p2.m_A = 10;
	p2.m_B = 10;
	
	//运算符重载实质其实为函数的调用
	Person p3 = p1.operator+(p2);
	
	//运算符重载实际用法,实现对自定义类的相加运算
	Person p4 = p1 + p2;
	
	//输出结果校验
	cout << p4.m_A << endl;
	cout << p4.m_B << endl;

	system("pause");
	return 0;
}

接下来是运算结果,显示重载后的 “ + ” 运算符实现了对自定义类Person四则运算的功能

在这里插入图片描述注意:重载的运算符也是可以有重载函数的

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章