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

目录
相关文章
|
4天前
|
Java 编译器
重载和重写的区别是什么?
重载和重写的区别是什么?
|
4天前
|
编译器 C#
C#重载详解
C#重载详解
9 0
|
4天前
重载和重写的区别
重载和重写的区别
13 0
|
10月前
重载和重写有什么区别?
重载和重写有什么区别?
47 0
|
10月前
|
C++
C++重载、重写、重定义
C++重载、重写、重定义
71 0
|
6月前
|
C++
39 C++ - 为什么不能重载&&、||
39 C++ - 为什么不能重载&&、||
21 0
|
6月前
|
C++
54 C++ - 重写 重载 重定义
54 C++ - 重写 重载 重定义
17 0
|
8月前
函数的重载
函数的重载
20 0
|
8月前
4.【拷贝构造函数与重载】
4.【拷贝构造函数与重载】
21 1
|
10月前
|
C#