操作符重载
加号“+”可以用在特定类型间,如int、double等。如果想用在自定义类型间,那么需要重载操作符“+”。
以虚数加法为例,为了方便理解,先用老办法(函数方式myAdd),之后再转换成操作符
#include <iostream> using namespace std; class Complex //自定义类,虚数 { public: int m_a; //实部 int m_b; //虚部 public: Complex(int a,int b) //构造函数,带参。Complex类想象成“a+bi”样式 { this->m_a=a; this->m_b=b; } }; //全局函数myAdd Complex myAdd(Complex &c1,Complex &c2) //虚数间相加,返回虚数 { Complex tmp(c1.m_a+c2.m_a,c1.m_b+c2.m_b); return tmp; } int main() { Complex c1(1,2),c2(3,4); //1+2i,3+4i Complex c3=myAdd(c1,c2); //4+6i cout << c3.m_a<<"+"<<c3.m_b<<"i"<< endl; return 0; }
把myAdd替换成opetator +
#include <iostream> using namespace std; class Complex //自定义类,虚数 { public: int m_a; //实部 int m_b; //虚部 public: Complex(int a,int b) //构造函数,带参。Complex类想象成“a+bi”样式 { this->m_a=a; this->m_b=b; } }; //operator+等效为全局函数名myAdd Complex operator+(Complex &c1,Complex &c2) //虚数间相加,返回虚数 { Complex tmp(c1.m_a+c2.m_a,c1.m_b+c2.m_b); return tmp; } int main() { Complex c1(1,2),c2(3,4); //1+2i,3+4i //Complex c3=operator+(c1,c2); Complex c3=c1+c2; //4+6i cout << c3.m_a<<"+"<<c3.m_b<<"i"<< endl; return 0; }
结论:operator+就是函数名
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· 字符编码:从基础到乱码解决
· SpringCloud带你走进微服务的世界