Où est le cout déclaré?
Mon professeur d'informatique veut que nous trouvons la déclaration de cout
. J'ai compilé un simple programme "Hello world" à l'aide de g++ et le paramètre-E. Voici ce que mon hello.cpp ressemble:
#include <iostream>
using namespace std;
int main(){
string name="";
cout << "Good morning! What's your name?";
cin >> name;
cout << "Hello " << name << ".\n";
return 0;
}
Ma compilation de commande:
g++ -E hello.cpp > hello.p
Dans bonjour.p, j'ai couru une recherche dans VIM, comme suit:
:/cout
Je vois la ligne suivante:
extern ostream cout;
Est que la déclaration de cout
, et est cout
une instance de la ostream
classe?
Edit:
Quelle est la wcout
déclaration de là bas? Si je me souviens bien de la lettre "w" signifie "large", mais je ne sais pas ce qui implique que a des. Qu'est ce qu'un wcout
et un wostream
?
Je serais prêt à deviner quelque part dans le code ajouté à votre exécutable lorsque vous liez contre IOStream.
J'ai sorti une ligne de code. Je veux savoir si c'est le cas.
Essayez ceci: cplusplus.com - type
Oui, le cout est une instance de la classe ostream.
J'ai sorti une ligne de code. Je veux savoir si c'est le cas.
Essayez ceci: cplusplus.com - type
cout
dans la boîte de recherche.Oui, le cout est une instance de la classe ostream.
OriginalL'auteur Moshe | 2012-03-11
Vous devez vous connecter pour publier un commentaire.
Oui, c'est en effet la déclaration de
std::cout
, trouvé à l'intérieur de la<iostream>
en-tête.La norme pertinente de la partie peut être trouvé dans
§27.4.1 [iostream.objects.overview]
:est juste un
basic_ostream
spécialisés surwchar_t
, ce qui signifie UTF-16 sur Windows et UTF-8 sur Linux IIRC.OriginalL'auteur Xeo
Oui, c'est la déclaration de
std::cout
et oui, c'est une instance destd::ostream
. Il est déclaréextern
de sorte que l'objet n'est créé qu'une seule fois, même si l'en-tête est inclus dans plusieurs unités de traduction.namespace std { ... }
partie. C'eststd::ostream std::cout
, pas::ostream ::cout
.OriginalL'auteur StackedCrooked