当前位置: 首页 > 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.->  []  =  ()必须在类内重载
 

http://www.dtcms.com/a/93410.html

相关文章:

  • 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协议笔记
  • AI之山,鸿蒙之水,画一幅未来之家
  • 网络之数据链路层
  • 【赵渝强老师】Oracle数据库的客户端工具
  • python爬虫WASM
  • 大模型工作原理深度解剖:从Transformer架构到知识涌现的范式革命
  • 全息教学系统的软件开发,沉浸式数字沙盘展示系统如何改变历史教学
  • 蓝桥与力扣刷题(蓝桥 蓝桥骑士)
  • 腾讯滑块验证码自动分析工具:原理与实现
  • 《TypeScript 7天速成系列》第3天:TypeScript高级类型通关秘籍:泛型+联合+交叉类型实战
  • 【react】类组件和函数组件的区别