44重载双目运算符

简介: 44重载双目运算符

C++入门——60s从0到1

重载双目运算符

 

C++重载双目运算符是一种常见的操作,通过重载双目运算符,可以让用户更加方便地使用自定义数据类型。

 

重载双目运算符的语法

 

在C++中,双目运算符是指需要两个操作数进行计算的运算符,例如 +、-、*、/ 等。重载双目运算符的语法如下:

 

class MyClass {
public:
    // 普通成员函数
    int operator+(const MyClass& other) {
        return this->a + other.a;
    }
};

 

在上面的代码中,我们定义了一个 `MyClass` 类,并重载了双目运算符 `+`。该运算符需要一个 `const MyClass&` 类型的参数,表示需要对另一个 `MyClass` 对象进行加法运算。

 

示例代码

 

下面是一个简单的示例代码,演示如何重载双目运算符:

 

#include <iostream>
using namespace std;
 
class Complex {
public:
    // 构造函数
    Complex(double real = 0, double imag = 0) : m_real(real), m_imag(imag) {}
    // 获取实部
    double getReal() const { return m_real; }
    // 获取虚部
    double getImag() const { return m_imag; }
    // 重载加法运算符
    Complex operator+(const Complex& other) const {
        return Complex(m_real + other.m_real, m_imag + other.m_imag);
    }
private:
    double m_real;   // 实部
    double m_imag;   // 虚部
};
 
int main() {
    Complex a(1, 2);
    Complex b(3, 4);
    Complex c = a + b;   // 使用重载的双目运算符
    cout << "a + b = " << c.getReal() << "+" << c.getImag() << "i" << endl;   // 输出结果
    return 0;
}

在上面的代码中,我们定义了一个 `Complex` 类,表示一个复数。该类包含两个私有成员变量 `m_real` 和 `m_imag`,分别表示复数的实部和虚部。我们还重载了双目运算符 `+`,用于计算两个复数的和。最后在 `main()` 函数中,我们创建了两个复数 `a` 和 `b`,并将它们相加得到新的复数 `c`。最后输出结果,可以看到输出的结果为 `1+2i`,说明我们的重载运算符是正确的。

目录
相关文章
|
22天前
|
人工智能 监控 算法
AI测试开发工程师面试指南:20个核心技术问题及思路解析
霍格沃兹测试开发学社总结AI测试开发岗位面试要点。面试重点考察模型验证、性能优化、MLOps落地等工程能力。建议结合项目经验,展示从需求到上线的全流程实践经验,并通过量化指标体现技术价值。同时需掌握特征工程、模型监控及前沿技术应用,系统提升综合竞争力。
|
存储 Kubernetes 安全
kubernetes集群降级|k8s1.24+版本降级到1.23
kubernetes集群降级|k8s1.24+版本降级到1.23
|
JavaScript 前端开发 Java
23、匿名类的排序、Lambda 表达式、方法引用
23、匿名类的排序、Lambda 表达式、方法引用
119 0
ENVI:影像的规则裁剪和不规则裁剪
ENVI:影像的规则裁剪和不规则裁剪
670 0
免费开源 GIF 录屏制作软件 | ScreenToGif的安装及使用说明
免费开源 GIF 录屏制作软件 | ScreenToGif的安装及使用说明
950 3
|
搜索推荐 Java 自然语言处理
计算文本相似度的几种方法
计算文本相似度的几种方法
|
缓存 Linux 测试技术
搭建本地YUM仓库
在Redhat 9系统中,通过挂载系统安装盘到/mnt,然后创建本地YUM仓库以实现软件包管理。首先查看磁盘挂载情况,将ISO镜像挂载到/mnt。接着,备份`/etc/yum.repos.d/`目录内容,删除原有仓库,创建`loaclhost.repo`文件并配置指向/mnt中的Package目录。运行`yum clean all`清除缓存,`yum makecache`建立元数据。最后,成功通过新配置的本地仓库安装了bind软件及其依赖。
667 3
|
Kubernetes Cloud Native Java
Java一分钟之-Quarkus:Kubernetes原生的Java框架
【6月更文挑战第12天】Quarkus是面向Kubernetes的Java框架,以其超快启动速度和低内存占用著称。核心特性包括AOT编译实现毫秒级启动、优化的运行时模型、与Kubernetes的无缝集成及丰富的扩展库。常见问题涉及Maven依赖管理、热重载机制理解和配置文件的忽视。解决这些问题的关键在于深入学习官方文档、使用Dev UI调试和参与社区交流。通过代码示例展示了如何快速创建REST服务。掌握Quarkus能提升开发效率,适应微服务架构。
269 0
|
传感器 监控 安全
地铁线路管理系统的设计与实现_kaic
地铁线路管理系统的设计与实现_kaic
|
运维 安全 大数据
构建多账号云环境的解决方案|多账号身份权限集中管理
企业客户在阿里云采用多账号的资源结构,如果需要在每个账号内配置身份和权限,管理成本和安全风险都会大大增加。阿里云开放平台云SSO产品专家 夜来为您介绍如何使用云SSO进行多账号身份权限统一管理,包括与企业自有身份系统集成、统一的身份管理和多账号的权限配置。
1550 5