c++输入输出运算符重载
时间: 2023-05-22 19:03:41 浏览: 115
答案:
C++ 中的输入输出运算符重载,分别用于重载流提取运算符 ">>" 和流插入运算符 "<<",用于自定义类型的输入与输出。
一般情况下,输入输出运算符重载的原型如下:
```
istream& operator>> (istream& is, myType& obj);
ostream& operator<< (ostream& os, const myType& obj);
```
其中,`is` 是指表示输入流的 `istream` 对象,`os` 则是表示输出流的 `ostream` 对象,`obj` 则是自定义类型的对象。
对于输入运算符重载,其主要的工作是从输入流中读取数据,并将被赋值的对象返回。对于输出运算符重载,则主要是将自定义类型的对象以某种格式输出到输出流中。
下面这段代码是一个简单的自定义类型的输入输出运算符重载实例:
```
class Complex
{
public:
double real;
double imag;
};
istream& operator>>(istream& is, Complex& obj)
{
is >> obj.real >> obj.imag; // 从输入流中读取数据
return is; // 返回被赋值的对象
}
ostream& operator<<(ostream& os, const Complex& obj)
{
os << obj.real << "+" << obj.imag << "i"; // 将对象以某种格式输出至输出流中
return os; // 返回输出流
}
```
有了上面的代码,我们就可以像使用标准输入输出流一样使用自定义类型了:
```
Complex c;
cin >> c; // 从标准输入中读取数据
cout << c; // 输出到标准输出中
```
该程序会将读取到的复数以 `a+bi` 的形式输出至标准输出中。
阅读全文