您的位置:首页 > 编程语言 > C语言/C++

重学C++ 重载 流插入(<<)和流提取(>>)运算符

2013-04-24 12:14 417 查看
//ID.h
#ifndef ID_H
#define ID_H
#include<iostream>
using std::ostream;
using std::istream;

#include<string>
using std::string;

class ID
{
	friend ostream &operator<<(ostream &,const ID&);
	friend istream &operator>>(istream &,ID&);
private:
	string homeplace;
	string age;
	string sex;
};

#endif


//ID.cpp
#include<iomanip>
using std::setw;

#include "ID.h"

ostream &operator<<(ostream &output,const ID& someone)
{
	output<<"出生地:"<<someone.homeplace
		<<"年龄:"<<someone.age
		<<"性别:"<<someone.sex;

	return output;
}

istream &operator>>(istream &input,ID& someone)
{
//	input.ignore();//skip
	input>>setw(5)>>someone.homeplace;

	input.ignore();//skip
	input>>setw(3)>>someone.age;

	input.ignore();//skip
	input>>setw(2)>>someone.sex;
	
	return input;
}


#include <iostream>
using std::cout;
using std::cin;
using std::endl;

#include "ID.h"

int main()
{
	ID Jack;
	cout<<"输入信息:"<<endl;
	cin>>Jack;
	cout<<"信息如下"<<endl;
	cout<<Jack;
	return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐