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};  
    }  
};  

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

  • 运算符的返回类型应根据其功能而定,通常是类的实例或基本类型。
  • 运算符重载应保持运算符的原有语义,使得代码易于理解。
  • 不能重载某些运算符,例如 ::(作用域解析运算符)、.(成员访问运算符)等。
相关推荐
蒸蒸yyyyzwd15 小时前
秋招学习笔记 day46
c++·八股
码匠许师傅18 小时前
【C++三方组件】cpp-httplib:一个头文件起 HTTP 服务
开发语言·c++·http
无名猿19 小时前
new/delete 与 malloc/free:为什么绝对不能混用
c++·内存管理·现代c++·踩坑记录
2601_9622186121 小时前
C++中decltype关键字的实现
开发语言·c++
繁华的地方不一定留下你的脚印21 小时前
C++ std::variant 与 std::visit:安全保存多种类型,写清每个处理分支
开发语言·c++
程序员老陆1 天前
WIN32_LEAN_AND_MEAN:Windows 头文件里的“精简编译开关”
c++·windows
hold?fish:palm1 天前
45 二叉树的右视图
开发语言·c++·算法
ShineWinsu1 天前
对于Redis:Redis的认识以及分布式系统的解析
linux·数据库·c++·redis·缓存·消息队列·分布式架构
布莱克6051 天前
在C++中,构造函数能不能是虚函数?析构函数为什么要虚?
开发语言·c++·构造函数·析构函数·虚函数
旖旎夜光1 天前
LeetCode 137 : 只出现一次的数字 II(位运算) —— 题解
c++·笔记·学习·算法·leetcode·力控