c++重载输入输出运算符
时间: 2023-07-05 11:22:18 浏览: 125
c++ 运算符重载
重载输入输出运算符是C++中常用的操作之一,可以方便地对自定义类型进行输入输出。下面是一个重载输入输出运算符的示例:
```cpp
#include <iostream>
using namespace std;
class Complex {
public:
Complex(double r = 0.0, double i = 0.0) : real(r), imag(i) {}
friend ostream& operator<<(ostream& out, const Complex& c);
friend istream& operator>>(istream& in, Complex& c);
private:
double real;
double imag;
};
ostream& operator<<(ostream& out, const Complex& c) {
out << c.real << "+" << c.imag << "i";
return out;
}
istream& operator>>(istream& in, Complex& c) {
in >> c.real >> c.imag;
return in;
}
int main() {
Complex c1(1.0, 2.0), c2;
cout << "Enter a complex number: ";
cin >> c2;
cout << "c1 = " << c1 << endl;
cout << "c2 = " << c2 << endl;
return 0;
}
```
在上面的示例中,我们定义了一个名为Complex的类,其中包含两个私有成员变量real和imag,分别表示复数的实部和虚部。然后,我们使用friend关键字定义了两个友元函数,分别是ostream& operator<<(ostream& out, const Complex& c)和istream& operator>>(istream& in, Complex& c),用于重载输出和输入运算符。在这两个函数中,我们可以对Complex类型进行自定义的输出和输入操作。
在main函数中,我们创建了两个Complex对象,c1和c2,分别使用默认值和用户输入的值进行初始化,并分别输出到标准输出上。当我们输入一个复数时,程序会自动调用重载的输入运算符,并将输入的值存储到c2对象中。最终,程序输出了c1和c2的值,验证了重载输入输出运算符的正确性。
阅读全文