关于重载流插入运算符和流提取运算符的问题
来源:互联网 发布:nginx 经典书籍 编辑:程序博客网 时间:2024/05/17 01:14
在C++编译系统中,其类库中提供输入流类istream和输出流类ostream,cin和cout分别是两个类的对象。
重载两运算符格式如下:
istream & operator >> (istream &, 自定义类 &);
ostream & operator << (ostream &, 自定义类 &);
并且只能将其重载为友元函数,而不能作为自定义类的成员函数, 原因如下:
定义为成员函数,那么就隐含this指针了,你要知道重载其实也是一种函数,那么函数就有调用他的对象。如果是成员函数,那么调用他的对象就肯定是相对应的类对象了,
但是<<和>>调用的对象肯定只能是cout或者cin,那么就不能定义为成员函数了,只有定义成友元,那么就可以把cin,cout作为一个参数传进你重载的操作符函数里面去了。
如果一定要定义为成员函数,则代码示例如下:
ostream & operator<<(ostream &output){ return output;}所以在运用这个<<运算符时就变为这种形式了:data<<cout; 这不符合人的习惯。
还有如何判断调用的是否是重载的流插入符还是预定义的流插入符。
int main(){Time T1;cout<<T1<<5<<endl;return 0;}<<右侧如果为友元函数的自定义类,则为重载的流运算符,如果是标准类型的数据,那就是正常的预定义流运算符,这一点还要注意。
0 0
- 关于重载流插入运算符和流提取运算符的问题
- 运算符重载-流插入运算符和流提取运算符的重载
- 重载流插入运算符<<和流提取运算符>>
- 重载流插入运算符和流提取运算符
- 重载流插入运算符和流提取运算符
- 流插入运算符流提取运算符的重载
- 重载之重载流插入和流提取运算符
- C++之运算符的重载三:重载流插入运算符和流提取运算符
- 重载流插入/流提取运算符
- C++的流插入运算符“<<”和流提取运算符“>>”的重载
- 流插入运算符和流提取运算符的重载
- 057day(流插入,流提取运算符和类型转换运算符的重载)
- 重载流插入和流提取运算符
- C++语言基础 例程 重载流插入运算符和流提取运算符
- 重载流插入运算符《和流提取运算符》 第五题
- 【c/c++】流插入运算符和流提取运算符重载
- 重载流提取运算符
- 7.12流插入运算符“<<"和流提取运算符”>>“
- 第十四周--平衡二叉树
- iOS - 关于轮播图的实现实例
- NavigationView的简单使用
- HBASE 结构详解(转载)
- nmap端口扫描
- 关于重载流插入运算符和流提取运算符的问题
- iOS打印功能详解 UIPrintInteractionController
- Android绘图机制(三)——自定义View的实现方式以及半弧圆新控件
- 第十五周项目1(1)--验证哈希表相关算法
- Warning:mysql_num_rows() expects parameter 1 to be resource,boolean given in F:.....\db_func.php onl
- ios内联函数 inline
- Android的材料设计兼容库(Design Support Library)
- laravle (八)laravle 缓存
- 定位