当前位置:首页 C++ > 正文

c++设计复数类:设计复数类Complex和友元运算符重载>>及<<实现复数类对象的标准输入和输出

作者:野牛程序员:2024-10-22 08:52:47 C++阅读 1990
c++设计复数类:设计复数类Complex和友元运算符重载>>及<<实现复数类对象的标准输入和输出

下面是一个简单的 C++ 复数类 Complex 的设计,其中包括友元运算符重载 >><<,以实现复数对象的标准输入和输出。

#include <iostream>

class Complex {
private:
    double real;  // 实部
    double imag;  // 虚部

public:
    // 默认构造函数
    Complex(double r = 0.0, double i = 0.0) : real(r), imag(i) {}

    // 友元运算符重载 <<
    friend std::ostream& operator<<(std::ostream& out, const Complex& c) {
        out << c.real;
        if (c.imag >= 0) {
            out << " + " << c.imag << "i";
        } else {
            out << " - " << -c.imag << "i";
        }
        return out;
    }

    // 友元运算符重载 >>
    friend std::istream& operator>>(std::istream& in, Complex& c) {
        char sign;
        in >> c.real >> sign >> c.imag; // 输入实部和虚部
        if (sign == '-') {
            c.imag = -c.imag; // 处理负号
        }
        return in;
    }
};

int main() {
    Complex c1, c2;

    std::cout << "Enter complex number in the format a + bi or a - bi: ";
    std::cin >> c1; // 输入复数
    std::cout << "You entered: " << c1 << std::endl; // 输出复数

    std::cout << "Enter another complex number: ";
    std::cin >> c2; // 输入第二个复数
    std::cout << "You entered: " << c2 << std::endl; // 输出第二个复数

    return 0;
}

说明

  1. 类成员变量realimag 分别表示复数的实部和虚部。

  2. 构造函数:提供默认值以便于创建复数对象。

  3. 运算符重载

    • operator<< 用于输出复数。根据虚部的符号决定输出格式。

    • operator>> 用于输入复数,允许用户输入格式为 a + bia - bi,同时处理虚部的符号。

  4. 主函数:用于示范如何输入和输出复数对象。

可以根据需要扩展该类,添加更多功能,比如加法、减法等运算符重载。


野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892
野牛程序员教少儿编程与信息学竞赛-微信|电话:15892516892
  • c++
  • 最新推荐

    热门点击