Frage

Mein Informatikprofessor möchte, dass wir die Erklärung von finden cout.Ich habe ein einfaches Hello World-Programm mit g++ und dem Parameter -E kompiliert.So sieht mein hello.cpp aus:

#include <iostream>

using namespace std;

int main(){

  string name="";

  cout << "Good morning! What's your name?";

  cin >> name;

  cout << "Hello " << name << ".\n";

  return 0; 

}

Mein Kompilierungsbefehl:

g++ -E hello.cpp > hello.p

In hello.p habe ich eine Suche in VIM durchgeführt, etwa so:

:/cout

Ich sehe die folgende Zeile:

extern ostream cout;

Ist das die Erklärung von cout, und ist cout eine Instanz von ostream Klasse?

Bearbeiten:

Was ist das wcout Erklärung dort für?Wenn ich mich richtig erinnere, steht der Buchstabe „w“ für „breit“, aber ich weiß nicht, welche Bedeutung das hat.Was ist ein wcout und ein wostream?

War es hilfreich?

Lösung

Ja, das ist tatsächlich die Erklärung von std::cout, gefunden im <iostream> Header.

Den entsprechenden Normteil finden Sie in §27.4.1 [iostream.objects.overview]:

Header <iostream> Zusammenfassung

#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 Der Header <iostream> deklariert Objekte, die Objekte mit den Standard-C-Streams verknüpfen, die von den in deklarierten Funktionen bereitgestellt werden <cstdio> (27.9.2) und enthält alle Header, die zur Verwendung dieser Objekte erforderlich sind.

Andere Tipps

Ist das die Deklaration von cout und ist cout eine Instanz der Klasse ostream?

Ja, das ist die Erklärung von std::cout und ja, es ist ein Beispiel dafür std::ostream.Es ist deklariert extern sodass das Objekt nur einmal erstellt wird, auch wenn der Header in mehreren Übersetzungseinheiten enthalten ist.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top