重新理解c++中的cout
来源:互联网 发布:埃尔隆德 知乎 编辑:程序博客网 时间:2024/05/19 10:07
大一我曾学过c++,但我觉得一点都没学会它,固然有老师教的不好的因素,但也因为自己没好好认识到这门语言该怎么学,因为那时什么都不懂。现在重新学一遍,希望有新的收获。
如果打开iostream这个文件,你会发现:
// iostream
……
#include <istream>
……
——————————————————————————————————————————
// istream
……
#include <ostream>
……
——————————————————————————————————————————
// ostream
……
template<class _E, class _Tr = char_traits<_E> >
class basic_ostream : virtual public basic_ios<_E, _Tr> {
……
};
——————————————————————————————————————————
由此可见:
1)cout当然是ostream的一个实例或者你可以认为是一个实例的引用 。
2)ostream不一定定义在iostream中,但是如果你递归地展开iostream的话,肯定会有它的声明。否则,一个没有声明的类,如何访问其成员方法 ???比如重载的<<
3)有上面可以看出,basic_ostream是个模板类,在VC下,它的实现只能在头文件中,所以,它的实现没有被编译成库文件。
4)它的实现在ostream这个文件中。
5)所以iostream中有它的声明和实现。
网上搜集的一些资料,我总结了下.
#include<iostream>
using namespace std;
void main()
{
cout << "hello world!";
}
using namespace std;
void main()
{
cout << "hello world!";
}
这段代码是c++里最最简单的一段代码,但它里面却包含了很多内容。
请看分析:
#include<iostream> // 包含iostream,编译器会把iostream中内容替换这条语句
using namespace std; // 打开命名空间std,
// std命名空间内的定义的类、函数等就可以直接访问,
// 而不需要用std::这种方式来访了
void main()
{
cout << "hello world!"; // 如果没有#include<iostream>,cout是未定义的;
// 如果没有using namespace std;,
// 你就得这样写了:std::cout << "hello word!";
}
using namespace std; // 打开命名空间std,
// std命名空间内的定义的类、函数等就可以直接访问,
// 而不需要用std::这种方式来访了
void main()
{
cout << "hello world!"; // 如果没有#include<iostream>,cout是未定义的;
// 如果没有using namespace std;,
// 你就得这样写了:std::cout << "hello word!";
}
如果打开iostream这个文件,你会发现:
// iostream
……
#include <istream>
……
——————————————————————————————————————————
// istream
……
#include <ostream>
……
——————————————————————————————————————————
// ostream
……
template<class _E, class _Tr = char_traits<_E> >
class basic_ostream : virtual public basic_ios<_E, _Tr> {
……
};
——————————————————————————————————————————
由此可见:
3)有上面可以看出,basic_ostream是个模板类,在VC下,它的实现只能在头文件中,所以,它的实现没有被编译成库文件。
4)它的实现在ostream这个文件中。
5)所以iostream中有它的声明和实现。
网上搜集的一些资料,我总结了下.
- 重新理解c++中的cout
- c中的printf和c++中的cout有什么区别
- 理解cout“从右至左入栈”
- C++,cout和std::cout的区别
- C++中的cout
- c++中的cin,cout
- 实现C++中的cout
- 帮助理解cerr、cout、clog
- 【C/C++】Cin与Cout
- C++中的 cout 和cin
- (C++)cout格式化输出示例
- (C++)cout格式化输出示例
- [C++] cout hex,oct,dec
- (C++)cout格式化输出示例
- 【C++】输出流cout方法
- [C++]cout输出精度控制
- <C++>_浅谈cin&cout
- 理解C中的const关键字
- 视频下载中心
- Second Normal Form (2NF)
- HSL和HSLA,RGBA全新的定义颜色方法
- 2005年北航硕士研究生入学考试"数据结构"试题与答案
- 2006年北航硕士研究生入学考试"数据结构"试题与答案
- 重新理解c++中的cout
- JS应用
- 悟透JavaScript
- 8086 汇编
- php中的class到底是什么?
- js技巧收集
- 清华大学2001年“数据结构”试题
- 『分享』各种提示、输入对话框的使用
- 数据结构试题2