21xrx.com
2024-09-20 05:41:09 Friday
登录
文章检索 我的文章 写文章
C++实现复数类:输出、求模和加法函数
2023-07-08 10:07:47 深夜i     --     --
C++ 复数类 输出 求模 加法函数

复数是数学中的一个概念,它由一个实数和一个虚数构成。在C++语言中,我们可以实现一个复数类,用于表示和操作复数。

首先,一个复数类应该能够输出复数的字符串表示。实现这个功能的代码如下:


#include <iostream>

using namespace std;

class Complex {

  private:

    double real;

    double imaginary;

  public:

    Complex(double r = 0, double i = 0)

      real = r;

      imaginary = i;

    

    friend ostream& operator<<(ostream& os, const Complex& c) {

      os << c.real << " + " << c.imaginary << "i";

      return os;

    }

};

在这个代码中,我们定义了一个Complex类,并重载了输出运算符。通过友元函数的方式,我们可以在输出流中打印这个复数的实部和虚部,形成一个字符串表示。

接下来,我们需要实现求复数的模长的方法。复数的模长是指其实部和虚部所构成的向量的模长,也可以看做是复平面上点到原点的距离。我们可以在Complex类中新建一个方法来计算模长,方法的代码如下:


double getModulus() const {

  return sqrt(real * real + imaginary * imaginary);

}

在这个代码中,我们使用了数学库中的平方根函数sqrt()来求出复数的模长。

最后,我们还需要实现复数加法运算。复数加法是指将两个复数的实部和虚部分别相加,形成一个新的复数。我们可以在Complex类中新建一个方法来重载加法运算符,方法的代码如下:


Complex operator+(const Complex& c) const {

  return Complex(real + c.real, imaginary + c.imaginary);

}

在这个代码中,我们以当前复数对象作为左操作数,传入另一个复数对象作为右操作数。在方法中将两个对象的实部和虚部分别相加,并返回一个新的复数对象。

通过这些方法,我们可以很方便地进行复数的操作。下面是一个使用这些方法的例子:


int main() {

  Complex c1(2, 3);

  Complex c2(4, -5);

  Complex sum = c1 + c2;

  cout << "c1 = " << c1 << endl;

  cout << "c2 = " << c2 << endl;

  cout << "c1 + c2 = " << sum << endl;

  cout << "Modulus of c1 = " << c1.getModulus() << endl;

  return 0;

}

在这个例子中,我们新建了两个复数对象c1和c2,分别设置它们的实部和虚部。接着,我们调用了复数加法的方法,将c1和c2相加得到了一个新的复数对象。我们输出了这三个复数对象和c1的模长。运行结果如下:


c1 = 2 + 3i

c2 = 4 + -5i

c1 + c2 = 6 + -2i

Modulus of c1 = 3.60555

可以看出,我们成功地实现了复数类的输出、求模和加法函数。在实际应用中,我们还可以根据需要添加更多的方法来进行复数的操作。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复