2010-11-28 16 views
5
// my first program in C++ 

#include <iostream> 
using namespace std; 

int main() 
{ 
    cout << "Hello World!"; 
    return 0; 
} 

¿Es cout un objeto? En caso afirmativo, ¿dónde se instancia? (No veo algo como "new ....")cout (salida estándar) en C++

+0

Usted escribió "count". Es útil pensar en ello como "c-out" como en "console out". Del mismo modo, hay un "c-in". – mpen

Respuesta

1

Sí, cout es un objeto. Se crea una instancia en el archivo de cabecera <iostream> detrás de la espalda (junto con algunos otros objetos de streaming como cin o cerr) :)

7

cout es un objeto global declarada en algún lugar de <iostream>.

Por cierto, a diferencia de Java o C#, no necesita new para crear un objeto. Por ejemplo, esto funcionará:

std::string str; // creates a new std::string object called "str" 
+1

Está declarado en '' no necesariamente definido allí. – ybungalobill

+0

@ybungalobill Tienes razón, he editado. –

0

Cout es parte de la biblioteca que acaba de crear una instancia en el encabezado IOSTREAM.

1

Sí, se inicia con la biblioteca de tiempo de ejecución de C++ cuando se inicia el programa.

1

cout es un objeto. Es instanciado por la implementación durante el inicio de su programa. Eso significa que puede suceder en la DLL CRT o en el código vinculado estáticamente.

2

La corriente C++ estados estándar (27.3/2):

[...] Los objetos se construyen, y las asociaciones se establecen a algún tiempo antes o durante la primera vez que un objeto de la clase ios_base::Init se construye, y en se inicia cualquier caso antes de que el cuerpo de la tubería principal . Los objetos son no destruidos durante la ejecución del programa .

Y a partir de ([iostream.objects]/2:

Si una unidad de traducción incluye <iostream> o explícitamente construye un objeto ios_base::Init, estos corriente objetos deben ser construidos antes de inicialización dinámica de objetos no locales definidos más adelante en esa unidad de traducción . "

En el lenguaje de C++, una unidad de traducción no es más que una terminología de compilación para un archivo y todos los encabezados que se incluyen en ese archivo.

+0

Bueno, un archivo y todos los encabezados que están incluidos en ese archivo. –

+0

@Billy: thnx, corregido – Abhay

Cuestiones relacionadas