C++ 中的运算符重载

运算符重载是C++中的一种特性,它允许开发者为自定义类型定义或改变标准运算符的行为。通过运算符重载,你可以使得用户定义的类像内置类型一样使用运算符,比如加法、减法、赋值等。
如何在C++中进行运算符重载?

  1. 重载运算符的语法:
    运算符重载可以通过全局函数或类成员函数来实现。以下是两种方法的基本语法示例:
  • 成员函数:
cpp 复制代码
class Complex {  
public:  
    double real, imag;  

    Complex operator+(const Complex& other) {  
        return Complex{real + other.real, imag + other.imag};  
    }  
};  
  • 全局函数:
cpp 复制代码
class Complex {  
public:  
    double real, imag;  

    friend Complex operator+(const Complex& c1, const Complex& c2) {  
        return Complex{c1.real + c2.real, c1.imag + c2.imag};  
    }  
};  

定义运算符:
在重载运算符时,常用的运算符有: +, -, *, /, ==, !=, <<, >>等等。
注意事项:

  • 运算符的返回类型应根据其功能而定,通常是类的实例或基本类型。
  • 运算符重载应保持运算符的原有语义,使得代码易于理解。
  • 不能重载某些运算符,例如 ::(作用域解析运算符)、.(成员访问运算符)等。
相关推荐
old_power23 分钟前
【PCL】Segmentation 模块—— 基于图割算法的点云分割(Min-Cut Based Segmentation)
c++·算法·计算机视觉·3d
涛ing39 分钟前
21. C语言 `typedef`:类型重命名
linux·c语言·开发语言·c++·vscode·算法·visual studio
PaLu-LI2 小时前
ORB-SLAM2源码学习:Initializer.cc⑧: Initializer::CheckRT检验三角化结果
c++·人工智能·opencv·学习·ubuntu·计算机视觉
攻城狮7号3 小时前
【10.2】队列-设计循环队列
数据结构·c++·算法
_DCG_4 小时前
c++常见设计模式之装饰器模式
c++·设计模式·装饰器模式
w(゚Д゚)w吓洗宝宝了4 小时前
设计模式概述 - 设计模式的重要性
c++·设计模式
7yewh4 小时前
嵌入式知识点总结 C/C++ 专题提升(七)-位操作
c语言·c++·stm32·单片机·mcu·物联网·位操作
w(゚Д゚)w吓洗宝宝了5 小时前
装饰器模式 - 装饰器模式的实现
开发语言·c++·算法
fadtes5 小时前
C++ initializer_list 列表初始化(八股总结)
c++·游戏
吴天德少侠5 小时前
c++中的链表list
c++·链表·list