在发布此问题之前,我已经进行了研究,并确保没有提出类似的问题。
我正在阅读有关C ++中流的这篇文章http://www.ntu.edu.sg/home/ehchua/programming/cpp/cp10_io.html,在链接中的蓝色图表中我注意到蓝色的是basic_iostream,绿色下面的是iostream,basic_ifstream和ifstream也是这样。 ,
据我了解,basic_iostream是模板类,iostream是basic_iostream的实例化,但这是什么意思?
iostream不是cout,cin和cerr之类的对象,那么它如何实例化?
答案 0 :(得分:5)
在命名空间std中有一个typedef:
typedef basic_iostream<char, char_traits<char>> iostream;
这将iostream
定义为basic_iostream<char, char_traits<char>>
的同义词。当你写类似
std::iostream my_stream;
您实际上是在写作
std::basic_iostream<char, std::char_traits<char>> my_stream.