重载>>运算符,举例复数实现
时间: 2023-07-11 07:27:02 浏览: 94
运算符重载实例,复数的运算
好的,下面是一个重载>>运算符,用于复数类的实现例子:
```
#include <iostream>
using namespace std;
class Complex {
private:
double real;
double imag;
public:
Complex() : real(0), imag(0) {}
Complex(double r, double i) : real(r), imag(i) {}
friend ostream& operator<<(ostream& os, const Complex& c);
friend istream& operator>>(istream& is, Complex& c);
};
ostream& operator<<(ostream& os, const Complex& c) {
os << c.real << " + " << c.imag << "i";
return os;
}
istream& operator>>(istream& is, Complex& c) {
cout << "Enter real part: ";
is >> c.real;
cout << "Enter imaginary part: ";
is >> c.imag;
return is;
}
int main() {
Complex c;
cin >> c;
cout << "The complex number is: " << c << endl;
return 0;
}
```
在这个例子中,我们定义了一个名为Complex的类,包含real和imag两个私有变量,以及一个默认构造函数和一个带参构造函数。
我们还定义了两个友元函数,<<运算符重载和>>运算符重载。其中,<<运算符重载用于打印复数类的实例,>>运算符重载用于从标准输入流中读取实数和虚数的值,并将其赋值给复数类的实例。
在主函数中,我们定义了一个名为c的复数类实例,并使用>>运算符重载从标准输入流中读取实数和虚数的值。然后,我们使用<<运算符重载打印出该复数类实例的值。
例如,如果我们依次输入实数和虚数的值为"3.5"和"4.2",则程序输出的结果为"The complex number is: 3.5 + 4.2i"。
希望这个例子能对您有所帮助!
阅读全文