当前位置: 首页 > news >正文

C++:重载操作符

还记得我们之前提到的函数重载吗,它可以使一个函数名有多种功能,操作符的重载也是这个道理,它会使同一个运算符具有多种功能。

我们在平常的使用中已经接触到了运算符重载,如“<<”,它既是位移运算符,也可以配合cout进行输出。在C++中我们也可以自己重载。

#include<iostream>
using namespace std;

class Num
{
private:
	int n;
public:
	Num(){}
	Num(int a)
	{
		n = a;
	}
public:
	int operator=(int a);
	int operator+(int a)
	{
		return n + a;
	}

	friend int operator+(int a, Num& num);
};

int Num:: operator=(int a)    //类内重载
{
	n = a;

	return a;
}

int operator+(int a, Num& num)//类外重载
{
	return a + num.n;
}

int main()
{
	Num num = 100;
	num = 20;

	int a = num + 10;
	int b = 10 + num;

	cout << a << " " << b << endl;
	return 0;
}

注意:

1.sizeof()   ::   .   ?: 这四个不能重载
2.重载不会改变优先级和结合性
3.重载操作符不允许使用默认参数
4.->  []  =  ()必须在类内重载
 

相关文章:

  • APM-基于Grafana生态以及OTLP协议的Java轻量级日志监控系统
  • Qt信号槽函数
  • springBoot中雪花算术法
  • 导出sql命令
  • 融合YOLO11与行为树的人机协作智能框架:动态工效学优化与自适应安全决策
  • LabVIEW医疗设备备用电源实时监控系统
  • Activiti工作流
  • CH32V208GBU6沁恒协议栈BUG:在主机Write的同一包notify会造成主机一直Write不成功;最终还是用心跳包来解决
  • 进程、线程和协程
  • Leecode Hot50
  • Zerotier虚拟局域网在树莓派的应用和Syncthing配合Zerotier实现端到端文件同步
  • Spring AOP面向切面编程实现日志功能
  • 第 五 章:优化算法_《C++性能优化指南》_notes
  • 在 CentOS 系统中开机自动执行 Shell 脚本
  • vue vue3 走马灯Carousel
  • 正则表达式-万能表达式
  • (二)手眼标定——概述+原理+常用方法汇总+代码实战(C++)
  • 第三章:测量性能_《C++性能优化指南》_notes
  • 可以把后端的api理解为一个目录地址,但并不准确
  • MQTT协议笔记
  • 人民日报今日谈:为何重视这个“一体化”
  • 安徽两位新任地级市政府党组书记亮相
  • 申活观察|咖香涌动北外滩,带来哪些消费新想象?
  • 解放日报:硬科企业由此迈出“市场第一步”
  • 解放日报:让算力像“水电煤”赋能千行百业
  • 国家卫健委对近日肖某引发舆情问题开展调查