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