大一下第二学期期中知识复习梳理 之 c++ 流类库和输入/输出
一、提取/插入运算符
从键盘输入变量:提取运算符>>,标准输入流对象cin;
将变量输出到显示器:插入运算符<<,标准输出流对象cout。
变量➡类对象:重载提取运算符(>>)和插入运算符(<<)
1、提取/插入运算符的重载系统已对内置数据类型实现了重载,但不支持非基本数据
类型,例如程序员定义的类:
输入类对象:只能逐个输入类对象的各个成员变量;输出类对象:只能逐个输出成员变量
2、提取/插入重载运算符的声明
3、提取/插入重载运算符的定义
friend istream& operator>>( istream&, className&)
{
//逐个输入className类对象的每个成员变量
}
friend ostream& operator<<(ostream&, className&)
{
//逐个输出className类对象的每个成员变量
}

#include<iostream> using namespace std; class Complex { double Real,Image; public: Complex(double r=0.0,double i=0.0):Real(r),Image(i){} friend ostream& operator<<(ostream &s,const Complex &z); friend istream& operator>>(istream &s,Complex &a); //友元函数定义在需要支持<<和>>的自定义类Complex中 }; ostream& operator<<(ostream &s,const Complex &z) //输出格式re, im { s<<z.Real<<','<<z.Image; return s; } istream& operator>>(istream &s,Complex &a) //输入格式re, im { char c=0; s>>a.Real>>c;//实部 if(c==',') s>>a.Image;//虚部 return s; } int main() { Complex c1; cin>>c1; cout<<c1; return 0; }
二、小结
读写文本文件(9.4.1,9.4.2节)
重载提取/插入操作符函数
定义ClassName类的友元函数:
friend istream& operator>>( istream&, className&);
friend ostream& operator<<(ostream&, className&);