c++重载输入输出流
时间: 2024-04-19 15:21:20 浏览: 162
C++中的输入输出流重载是一种通过自定义类的方式来实现对输入输出操作符的重载。通过重载输入输出流操作符,我们可以实现自定义类对象的输入输出操作。
在C++中,输入流操作符(>>)和输出流操作符(<<)都可以被重载。重载输入流操作符可以实现从标准输入或文件中读取数据到自定义类对象中,而重载输出流操作符可以实现将自定义类对象的数据输出到标准输出或文件中。
下面是一个示例代码,演示了如何重载输入输出流操作符:
```cpp
#include <iostream>
using namespace std;
class MyClass {
private:
int data;
public:
MyClass(int d) : data(d) {}
// 重载输入流操作符
friend istream& operator>>(istream& in, MyClass& obj) {
in >> obj.data;
return in;
}
// 重载输出流操作符
friend ostream& operator<<(ostream& out, const MyClass& obj) {
out << obj.data;
return out;
}
};
int main() {
MyClass obj(0);
cout << "请输入一个整数:";
cin >> obj; // 使用重载的输入流操作符
cout << "输入的整数为:" << obj << endl; // 使用重载的输出流操作符
return 0;
}
```
在上面的示例代码中,我们定义了一个名为`MyClass`的类,其中包含一个私有成员变量`data`。通过友元函数的方式,我们分别重载了输入流操作符`>>`和输出流操作符`<<`。在`main`函数中,我们创建了一个`MyClass`对象`obj`,并通过重载的输入流操作符从标准输入中读取一个整数到`obj`中,然后通过重载的输出流操作符将`obj`的数据输出到标准输出中。
阅读全文