大一下第二学期期中知识复习梳理 之 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&); 

 

posted @ 2023-08-12 01:36  Au0702  阅读(36)  评论(0编辑  收藏  举报