Question

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 de 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?

Était-ce utile?

La solution

Oui, c'est en effet la déclaration de std::cout, trouvé à l'intérieur de la <iostream> l'en-tête.

La norme pertinente de la partie peut être trouvé dans §27.4.1 [iostream.objects.overview]:

L'en-tête <iostream> synopsis

#include <ios>
#include <streambuf>
#include <istream>
#include <ostream>

namespace std {
  extern istream cin;
  extern ostream cout;
  extern ostream cerr;
  extern ostream clog;
  extern wistream wcin;
  extern wostream wcout;
  extern wostream wcerr;
  extern wostream wclog;
}

p1 L'en-tête <iostream> déclare des objets qui associent des objets avec la norme C flux fourni par les fonctions déclarées dans <cstdio> (27.9.2), et comprend tous les en-têtes nécessaires à l'utilisation de ces objets.

Autres conseils

Est que la déclaration de cout, et est le cout d'une instance de la classe ostream?

Oui, c'est la déclaration de std::cout et oui, c'est une instance de std::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.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top