21xrx.com
2025-04-04 08:52:42 Friday
文章检索 我的文章 写文章
如何重载运算符实现c++中复数与实数的加法运算
2023-07-10 18:22:30 深夜i     9     0
重载运算符 复数 实数 加法运算 C++

在C++中,我们可以重载运算符以便在自定义类型上进行各种操作。在本文中,我们将探讨如何重载运算符来实现C++中复数和实数的加法运算。复数是由实部和虚部组成的数字,它可以用(a+bi)的形式表示,其中a是实部,b是虚部。

要实现复数和实数的加法运算,我们需要定义一个复数类,并在其中重载加法运算符。下面是一个具有实部和虚部成员的复数类:

class Complex {
private:
  double real;
  double imag;
public:
  Complex()
    real = 0;
    imag = 0;
  
  Complex(double r, double i)
    real = r;
    imag = i;
  
  void display() {
    cout << "(" << real << "+" << imag << "i)";
  }
  Complex operator + (double num) {
    Complex temp;
    temp.real = real + num;
    temp.imag = imag;
    return temp;
  }
  // 构建友元函数,实现实数加复数。
  friend Complex operator + (double num, Complex c);
};
// 实现实数加复数
Complex operator + (double num, Complex c) {
  Complex temp;
  temp.real = c.real + num;
  temp.imag = c.imag;
  return temp;
}

在这个类中,我们首先定义一个默认构造函数和一个带实数和虚数参数的构造函数。我们还定义了一个成员函数display(),用于显示复数的值。

在接下来的加法运算符的重载中,我们定义了一个返回值为复数类型的函数,它接受一个实数作为参数。我们将实数加到复数的实部上,并将复数的虚部返回。

还有一个友元函数在类外实现,用于实现实数加复数。在这个函数中,我们接受一个实数和一个复数作为参数,并将实数加到复数的实部上,然后返回一个新的复数。

现在,我们可以使用上面的代码来进行复数和实数之间的加法运算。例如,在主函数中,我们可以这样写:

int main() {
  Complex c1(2,3), c2;
  double r = 2.5;
  c2 = r + c1;
  c2.display(); // 输出: (4.5+3i)
  c2 = c1 + 1;
  c2.display(); // 输出: (3+3i)
  return 0;
}

在上面的示例中,我们创建了一个复数c1和一个实数r。然后,我们将实数r加到复数c1上,得到一个新的复数c2。我们还将一个整数1加到c1上,得到另一个新的复数c2。最后,我们使用display()函数显示了结果。

总结

通过重载运算符,我们可以轻松地在C++中实现复杂数值的加法运算。在本文中,我们探讨了如何重载加法运算符来实现C++中复数和实数之间的加法运算。通过使用友元函数,我们可以实现实数和复数间的加法运算。要记住的是,重载运算符是C++的一个重要特性,可以帮助我们简化代码并使我们的程序更易读和易维护。

  
  

评论区