码迷,mamicode.com
首页 > 编程语言 > 详细

关于C++中的cout

时间:2016-08-11 19:20:57      阅读:178      评论:0      收藏:0      [点我收藏+]

标签:

最近恰好看到qq群里有讨论cout的问题,发现自己对于cout的运行机制也不怎么明白,所以就仔细研究了下这个东西。

如下是c++ reference中cout的定义

extern ostream cout;

先说下问题吧,如图所示这两行代码在vs中是无法编译的,因为ostream没有对于stringstream类型的<<操作符重载

  技术分享

我在ostream中加入了以下代码:

技术分享

如下图所示,这时候错误就消失了,当然还是没法编译成功,毕竟改了原生的c++头文件,没改库文件。

技术分享

typedef basic_stringstream<char, char_traits<char>,
	allocator<char> > stringstream;

其实我一直在奇怪stringstream继承自ostream,按理来说ostream内部不用专门去重写针对stringstream的<<操作符,大概是因为basic_stringstream是模板的原因,这个我还需要深究以下。

关于C++中的cout

标签:

原文地址:http://www.cnblogs.com/nottvlike/p/5761990.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!