c++ 重载输入输出
时间: 2024-12-24 15:16:02 浏览: 4
在C++中,重载输入输出流(Overload Input/Output Streams)是指为不同的数据类型提供定制化的输入(如`cin`)和输出(如`cout`)操作。通过这种方式,程序员可以根据需要为特定类型的变量创建特定的读取和打印格式,使得代码更具可读性和灵活性。
**输入重载**:
例如,如果你想读取并解析一个自定义的数据结构,你可以定义一个专门的`operator>>(istream&)`来处理这个过程:
```cpp
class ComplexNumber {
public:
double real, imag;
// 重载输入运算符,接受从cin获取输入
friend istream& operator>>(istream& in, ComplexNumber& num) {
in >> num.real >> num.imag;
return in; // 返回流,支持链式输入
}
};
int main() {
ComplexNumber c;
cin >> c; // 使用自定义输入操作
return 0;
}
```
**输出重载**:
对于输出,可以重载`operator<<(ostream&, const T&)`,如输出一个复杂数字:
```cpp
ostream& operator<<(ostream& out, const ComplexNumber& num) {
out << num.real << " + " << num.imag << "i";
return out;
}
ComplexNumber complex(1.5, 2.0);
cout << complex; // 输出: 1.5 + 2.0i
```
这样,当你用`cout`打印`ComplexNumber`对象时,就会按照自定义的方式显示。
阅读全文