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

#include <iostream> 
using namespace std; 

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

cout est un objet? Si oui, où est-il instancié? (Je ne vois pas quelque chose comme "new ....")cout (sortie standard) en C++

+0

Vous avez écrit "count". Il est utile de penser à "c-out" comme à "console out". De même, il y a un "c-in". – mpen

Répondre

1

Oui, cout est un objet. Il est instancié dans le fichier d'en-tête <iostream> derrière votre dos (ainsi que d'autres objets de streaming comme cin ou cerr) :)

7

est un objet Cout global déclaré quelque part dans <iostream>. A propos, contrairement à Java ou C#, vous n'avez pas besoin de new pour créer un objet. Par exemple, cela fonctionnera:

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

Il est déclaré dans '' pas nécessairement défini là. – ybungalobill

+0

@ybungalobill Vous avez raison, j'ai édité. –

0

Cout fait partie de la bibliothèque que vous venez d'instancier dans l'en-tête IOSTREAM.

1

Oui, il est initialisé par la bibliothèque d'exécution C++ lors du démarrage de votre programme.

1

cout est un objet. Il est instancié par l'implémentation lors du démarrage de votre programme. Cela signifie que cela peut se produire dans la DLL CRT ou dans le code lié statiquement.

2

Le courant C++ états standard (27,3/2):

[...] Les objets sont construits et les associations sont établies à un certain temps avant ou pendant la première fois qu'un objet de la classe ios_base::Init est construit, et dans tout cas avant que le corps de commence l'exécution. Les objets sont non détruits lors de l'exécution du programme .

et de ([iostream.objects]/2:

Si une unité de traduction comprend <iostream> ou explicitement construit un objet ios_base::Init, ces flux d'objets doivent être construits avant l'initialisation dynamique du non locaux objets définis par la suite en ce que l'unité de traduction. »

En langage C++, une unité de traduction n'est rien d'autre qu'une terminologie de compilation pour un fichier et tous les en-têtes inclus dans ce fichier.

+0

Eh bien, un fichier, et tout/tous les en-têtes qui sont inclus dans ce fichier. –

+0

@Billy: thnx, corrigé – Abhay

Questions connexes