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