// my first program in C++
#include <iostream>
using namespace std;
int main ()
{
cout << "Hello World!";
return 0;
}
cout
是一个对象吗?
如果是这样,它在哪里被实例化? (我没有看到“new ....
”)
答案 0 :(得分:7)
cout是在&lt; iostream&gt;。
中声明的全局对象顺便说一句,与Java或C#不同,您不需要new
来创建对象。例如,这将起作用:
std::string str; // creates a new std::string object called "str"
答案 1 :(得分:2)
当前的C ++标准规定(27.3 / 2):
[...]构造对象,和 协会成立于 在第一次之前或期间的某个时间 时间是一个阶级的对象
ios_base::Init
已构建,并在 主体之前的任何情况 开始执行。对象是 在节目中没有被摧毁 执行。
来自([iostream.objects] / 2:
如果翻译单位包括
<iostream>
或明确构建 一个ios_base::Init
对象,这些流 物体应在之前建造 动态初始化非本地 稍后定义的对象 翻译单位。“
在C ++中,翻译单元只不过是文件的编译器术语和包含在该文件中的任何/所有标题。
答案 2 :(得分:1)
是的,cout
是一个对象。它在你背后的<iostream>
头文件中实例化(与cin
或cerr
等其他流媒体对象一起):)
答案 3 :(得分:1)
是的,它在程序启动时由C ++运行时库初始化。
答案 4 :(得分:1)
cout
是一个对象。它在程序启动期间由实现实例化。这意味着它可能发生在CRT DLL或静态链接的代码中。
答案 5 :(得分:0)
Cout是您刚刚在标题IOSTREAM中实例化的库的一部分。