【C++学习笔记】运算符重载的理解

本文详细介绍了运算符重载的概念及其实现原理,并通过实战演示了如何为自定义的复数类实现加减运算。


一、什么是运算符重载

重新定义运算符的功能,比如实现加、减、乘、除、括号等运算符其他功能。让程序可读性更强。


二、运算符重载原理

比如两个整数相加:

int a=2;
int b=3;
int c=a+b;

可以把加号看成int类里面的一个函数,即:

int a=2;
int b=3;
int c=a.+(b);

也就是:加号为函数,加号前面为类对象本身,加号后面函数参数。
那么,加号函数是怎么定义的呢?通过operator关键字。

int operator+(int &numer)const{}

引用作为形参是为了节省内存开销。

三、实战

实现自定义类的加减,我们实现复数的加减。
复数有实部和虚部,并定义display函数显示。

1.类成员定义

#pragma once
class complex
{
public:
	complex() {};
	complex(int r, int v) :real(r), vir(v) {};
	~complex() {};
	complex operator+(complex &c)const;
	complex operator-(complex & c)const;
	void display();
private:
	int real, vir;
};

2.函数实现

#include "complex.h"
#include<iostream>
using namespace std;

complex complex::operator+(complex &c)const {
	return complex(real + c.real, vir + c.vir);
}
complex complex::operator-(complex& c)const {
	return complex(real - c.real, vir - c.vir);
}
void complex::display() {
	cout << "实部为:" << real << endl
		<< "虚部为:" << vir << endl;
}

3 主函数

#include<iostream>
#include"complex.h"

using namespace std;

void main(){
	complex c1(2, 1);
	complex c2(5, 2);
	complex c3 = c1 + c2;
	c3.display();
}

总结

运算符重载就是定义了一个符号函数,使用operator关键字定义,符号为函数,符号前面为类对象本身,符号后面函数参数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值