C++学习基础八——重载输入和输出操作符
一、重载输入操作符的要点:
二、重载输出操作符的要点:
三、代码片段如下:
class Sales_Item
{
//注意:形参为引用时,实参和形参才指向共同的对象,否则修改形参的数据不影响实参。
friend ostream &operator<< (ostream &out,const Sales_Item &item);
friend istream &operator >> (istream &in,Sales_Item & item);
public :
Sales_Item()
{
count = ;
price = ;
}
Sales_Item(string &book,int number,double unit)
{
isbn = book;
count = number;
price = unit * number;
} private:
string isbn;
int count;
double price;
}; ostream &operator<< (ostream &out,const Sales_Item &item)
{
out<<item.isbn<<" , "<<item.count<<" , "<<item.price<<endl;
return out;
} istream &operator>> (istream &in,Sales_Item &item)
{
double price;
in >> item.isbn >> item.count >> price;
if(in)
{
item.price = price * item.count;
}
else
{
item = Sales_Item();
} return in;
}
int main()
{
string s("0-123-12345-X");
Sales_Item item(s,,12.00);
cout<<item<<endl; cin>>item;
cout<<item<<endl;
cout<<"ok"<<endl;
return ;
}
C++学习基础八——重载输入和输出操作符的更多相关文章
- C++重载输入和输出操作符以及IO标准库中的刷新输入缓冲区残留字符问题
今天在做C++ Primer习题的14.11时,印象中应该挺简单的一题,结果却费了很长时间. 类定义: typedef string Date; class CheckoutRecord{ publi ...
- 5.4 C++重载输入与输出操作符
参考:http://www.weixueyuan.net/view/6382.html 总结: 在C++中,系统已经对左移操作符“<<”和右移操作符“>>”分别进行了重载,使其 ...
- java基础-基本的输入与输出
java基础-基本的输入与输出 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.基本的输出 基本的输出,System.out 就是系统的标准输出设备,默认为显示器. 1>. ...
- Java学习笔记:基本输入、输出数据操作实例分析
Java学习笔记:基本输入.输出数据操作.分享给大家供大家参考,具体如下: 相关内容: 输出数据: print println printf 输入数据: Scanner 输出数据: JAVA中在屏幕中 ...
- Java I/O系统学习系列二:输入和输出
编程语言的I/O类库中常使用流这个抽象概念,它代表任何有能力产出数据的数据源对象或者是有能力接收数据的接收端对象.“流”屏蔽了实际的I/O设备中处理数据的细节. 在这个系列的第一篇文章:<< ...
- PYTHON 100days学习笔记008-3:输入和输出
目录 Day008-03:Python3 输入和输出 1.输出格式美化 1.1 str.format()用法 1.2 旧式字符串格式化 2.读取键盘输入 3.读和写文件 4.文件对象的方法 4.1 f ...
- Shell编程基础教程3--Shell输入与输出
3.Shell输入与输出 3.1.echo echo命令可以显示文本行或变量,或者把字符串输出到文件 echo [option] string ...
- UNIX基础知识之输入和输出
一.文件描述符 文件描述符(file descriptor)通常是一个小的非负整数,内核用它标识一个特定进程正在访问的文件.当内核打开一个已有文件或创建一个新文件时,它返回一个文件描述符.在读.写文件 ...
- Python基础二(输入与输出)
通常,一个程序都会有输入/输出,这样可以与用户进行交互.用户输入一些信息,你会对他输入的内容进行一些适当的操作,然后再输出给用户想要的结果.Python的输入/输出,我们可以用input进行输入,pr ...
随机推荐
- 初用Ubuntu常见问题及解决方案之一
1.我的Vaio Fit15e的无线网卡是BCM43142,装了Ubuntu后为了装驱动折腾了好久,因为这款网卡在Broadcom官网都找不到驱动,google了一大圈,一个最简单的命令可以解决这个问 ...
- Hadoop 如何查看是否32位
1.从哪些地方可以识别hadoop是32位还是64位?2.hadoop本地库在什么位置? hadoop在安装的时候,我们需要知道hadoop版本是32位还是64位. hadoop官网本来提供的都是32 ...
- SVG 2D入门13 - svg对决canvas
到目前为止,SVG与Canvas的主要特性均已经总结完毕了.它们都是HTML5中支持的2D图形展示技术,而且均支持向量图形.现在,我们就来比对一下这两种技术,分析一下它们的长处和适用场景.首先分析一下 ...
- 用php完成数据库的增删改查
<?php//一.连接数据库$con = mysql_connect("localhost","root","");//二.验证是否连 ...
- Fragment的初步设计
Fragment的初步设计 Fragment功能 Fragment将每一段碎片时间归类到一个具体的事件上: 使用者可以创建多个事件对碎片时间进行分类: 使用者点击事件会进入用户自己设置好的事件对应的A ...
- 模版页面通过get传参数http://.../good_id/2;控制中可以直接使用echo $good_id;//2
- HDU 2089 不要62
也是简单的数位dp. #include<iostream> #include<cstdio> #include<cstring> #include<algor ...
- jQuery 中 offset()方法与用position()的区别
jq中offset().left和offset().top获取的是相对于整个文档左上角的偏移. 而用$(selector).position().left和.top 取到的则是相对于selector父 ...
- HDU 2254
http://acm.hdu.edu.cn/showproblem.php?pid=2254 矩阵乘法两个经典问题的综合题,还要离散化和处理边界,好题啊好题 题意容易理解错,每一天是独立的,所以根据加 ...
- Mongodb在NUMA机器上的优化
10gen在mongodb的部署指南上,提到了在NUMA机器上,mongodb可能会出现问题,参见:http://docs.mongodb.org/manual/administration/prod ...