头文件 iostream 中
有如下声明:
__PURE_APPDOMAIN_GLOBAL extern _CRTDATA2 ostream cout;
此处为声明
那么,cout 的定义在什么地方???
答: 在 Microsoft Visual Studio 10.0\VC\crt\src 目录下 有个源文件 cout.cpp
其中定义如下:
__PURE_APPDOMAIN_GLOBAL extern _CRTDATA2 ostream cout(&fout);
此处为定义
有人就有疑问了,为什么两处都是extern 怎么第二处就是定义呢?
聪明的小伙伴已经明白了,首先来回一下extern的作用
extern int a; 此处为声明
extern int a = 1; 此处为定义
带有初始化的extern语句就是定义了
在仔细看下上面蓝色的字,第二处实际上是一个构造函数,初始化,所以,它是一个定义。
结论:std::cout 定义在cout.cpp文件中
告辞,各位!!!