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`,说明我们的重载运算符是正确的。

目录
相关文章
|
3月前
|
监控 算法 API
用抖音电商 API 实现抖音小店商品标签精准打标
本文介绍如何利用抖音电商 API 实现商品标签精准打标,提升曝光与转化率。内容涵盖打标重要性、API 调用准备、标签自动化更新流程及最佳实践,助力商家高效运营,优化推荐效果。
264 0
|
存储 Kubernetes 安全
kubernetes集群降级|k8s1.24+版本降级到1.23
kubernetes集群降级|k8s1.24+版本降级到1.23
ENVI:影像的规则裁剪和不规则裁剪
ENVI:影像的规则裁剪和不规则裁剪
640 0
|
JavaScript 前端开发 Java
23、匿名类的排序、Lambda 表达式、方法引用
23、匿名类的排序、Lambda 表达式、方法引用
112 0
|
Kubernetes Cloud Native Java
Java一分钟之-Quarkus:Kubernetes原生的Java框架
【6月更文挑战第12天】Quarkus是面向Kubernetes的Java框架,以其超快启动速度和低内存占用著称。核心特性包括AOT编译实现毫秒级启动、优化的运行时模型、与Kubernetes的无缝集成及丰富的扩展库。常见问题涉及Maven依赖管理、热重载机制理解和配置文件的忽视。解决这些问题的关键在于深入学习官方文档、使用Dev UI调试和参与社区交流。通过代码示例展示了如何快速创建REST服务。掌握Quarkus能提升开发效率,适应微服务架构。
255 0
|
Java 数据库连接 数据库
【MyBatis】进一步理解choose、when、otherwise标签
【MyBatis】进一步理解choose、when、otherwise标签
680 0
|
传感器 监控 安全
地铁线路管理系统的设计与实现_kaic
地铁线路管理系统的设计与实现_kaic
|
运维 安全 大数据
构建多账号云环境的解决方案|多账号身份权限集中管理
企业客户在阿里云采用多账号的资源结构,如果需要在每个账号内配置身份和权限,管理成本和安全风险都会大大增加。阿里云开放平台云SSO产品专家 夜来为您介绍如何使用云SSO进行多账号身份权限统一管理,包括与企业自有身份系统集成、统一的身份管理和多账号的权限配置。
1519 5
|
数据采集 传感器 存储
ESP32+MQTT+MySQL实现发布订阅【气味数据收集】
ESP32+MQTT+MySQL实现发布订阅【气味数据收集】
ESP32+MQTT+MySQL实现发布订阅【气味数据收集】
|
网络协议 Linux iOS开发
《熬夜整理》保姆级系列教程-玩转Wireshark抓包神器教程(2)-Wireshark在Windows系统上安装部署
【2月更文挑战第2天】《熬夜整理》保姆级系列教程-玩转Wireshark抓包神器教程(2)-Wireshark在Windows系统上安装部署
466 4