栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

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

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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

文章目录
  • 一、什么是运算符重载
  • 二、运算符重载原理
  • 三、实战
    • 1.类成员定义
    • 2.函数实现
    • 3 主函数
  • 总结


一、什么是运算符重载

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


二、运算符重载原理

比如两个整数相加:

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
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
#include"complex.h"

using namespace std;

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

总结

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

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/931430.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号