我是靠谱客的博主 灵巧蜡烛,最近开发中收集的这篇文章主要介绍overloading stream insertion and stream extraction operators,觉得挺不错的,现在分享给大家,希望可以做个参考。
概述
#ifndef PHONENUMBER_H
#define PHONENUMBER_H
#include <iostream>
using std::ostream;
using std::istream;
#include <string>
using std::string;
class PhoneNumber
{
public:
friend ostream& operator<< (ostream&, const PhoneNumber& );
friend istream& operator>> (istream&, PhoneNumber& );
PhoneNumber(){};
private:
string areaCode;//地区码 315
string exchange;//交换机码 560
string line;//所在的线 83**
};
#endif
/*
iomanip.h是I/O流控制头文件,就像C里面的格式化输出一样,
manip是manipulator(操纵器)的缩写(在c++上只有缩写才有效)。
-----------------------
setw(n) 设域宽为n个字符
如: cout<<setw(5)<<255<<endl;
结果是:(空格)(空格)255
*/
#include <iomanip>
using std::setw;
#include "PhoneNumber.h"
ostream &operator <<(ostream &output, const PhoneNumber &number )
{
output << "(" << number.areaCode << number.exchange <<"-"<<number.line;
return output;
}
istream &operator >>(istream &input, PhoneNumber &number )
{
input.ignore();//skip "("
input >> setw(3) >> number.areaCode;
input.ignore();//skip ")"
input >> setw(3) >> number.exchange;
input.ignore();//skip "-"
input >> setw (4) >>number.line;
return input;
}
<pre name="code" class="cpp">#include <iostream>
using std:: cout;
using std:: cin;
using std:: endl;
#include "PhoneNumber.h"
int main(int argc, char** argv)
{
PhoneNumber myphone;
cout << "Enter the phone number in the form of (123)456-7890: " << endl;
//cin 显式调用 >> 操作符。
// 调用格式: operator>>(cin, myphone)
cin >> myphone;
cout << "The phone No. entered was: " << endl;
//cout 显式调用 << 操作符。
// 调用格式: operator<<(cout, myphone)
cout << myphone<<endl;
return 0;
}
最后
以上就是灵巧蜡烛为你收集整理的overloading stream insertion and stream extraction operators的全部内容,希望文章能够帮你解决overloading stream insertion and stream extraction operators所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复