c++设计复数类:设计复数类Complex和友元运算符重载>>及<<实现复数类对象的标准输入和输出
作者:野牛程序员:2024-10-22 08:52:47 C++阅读 2512
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; }
说明
类成员变量:
real
和imag
分别表示复数的实部和虚部。构造函数:提供默认值以便于创建复数对象。
运算符重载:
operator<<
用于输出复数。根据虚部的符号决定输出格式。operator>>
用于输入复数,允许用户输入格式为a + bi
或a - bi
,同时处理虚部的符号。主函数:用于示范如何输入和输出复数对象。
可以根据需要扩展该类,添加更多功能,比如加法、减法等运算符重载。
野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892

- 上一篇:C++中istream的使用
- 下一篇:python用input输入列表