重载之输入输出操作

IO操作符必须为非成员函数(可以声明为类的友元函数)

 输出输出操作符重载

Person

{

 public:
     friend ostream& operator<<(ostream& ,const Person&);

     friend istream& operator>>(istream& ,Person&);

......

}

ostream& operator<<(ostream& os,const Person& p)
{
os<<"Person.name= "<<p.name<<endl;
os<<"Person.adress= "<<p.adress<<endl;
os<<"Person.phone_number= "<<p.phone_number<<endl; 
return os;
}

istream& operator>>(istream& in,Person& p)
{
in>>p.name>>p.adress>>p.phone_number;
return in;
}

输出重载的格式: 操作符接受ostream作为第一个形参,对类类型const对象的引用作为第二个形参,并返回对ostream形参的引用


输入重载:输入操作符的第一个形参是一个引用,指向它要读的流,并且返回的也是对同一个流的引。它的第二个形参是对要读入的对象的非const引用,该形参必须是非const,因为输入操作符的目的是将数据读到这个对象中


另外,输入操作符必须处理错误和文件结束的可能性






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值