Freigeben über


Verwenden der C++-Bibliotheks-Header

Sie schließen den Inhalt eines Standardheaders ein, indem Sie ihn in Include-Direktiven benennen.

#include <iostream>   // include I/O facilities

Sie können die Standardheader in beliebiger Reihenfolge mehrmals einschließen, Standardheader ein oder zwei oder mehr Standardheader, die dasselbe Makro oder die gleichen Typ definieren.Schließen Sie keinen Standardheader innerhalb einer Deklaration ein.Definieren Sie keine Makros, die dieselben Namen, die Schlüsselwörter, bevor Sie einen Standardheader einschließen.

Bibliotheksheader einer C++-Datei schließt alle anderen C++-Bibliotheksheader ein, die er erforderliche Typen definieren muss.Immer (gehören explizit alle C++-Bibliotheksheader erfordert in einer Übersetzungseinheit jedoch aus Angst, dass Sie falsch über die tatsächlichen Abhängigkeiten schätzen.) Ein Standard-C-Header schließt nie einen anderen Standardheader ein.Ein Standardheader deklariert oder definiert nur die Entitäten, die für ihn in diesem Dokument beschriebenen.

Jede Funktion in der Bibliothek wird in einem Standardheader deklariert.Anders als in Standard-C stellt der Standardheader nie ein maskierendes Makro mit dem Namen der Funktion, die die Funktionsdeklaration maskiert und den gleichen Auswirkungen erreicht.Weitere Informationen zum Maskieren von Makros, finden Sie unter C++-Bibliotheks-Konventionen.

Alle Namen als operator delete und operator new in den C++-Bibliotheksheadern werden im std-Namespace oder in einem Namespace definiert, der innerhalb des std-Namespace geschachtelt ist.Sie finden den Namen cin beispielsweise als std::cin an.Beachten Sie jedoch die Makronamen nicht für Namespacequalifikation sind, das Sie schreiben immer __STD_COMPLEX ohne einen Namespacequalifizierer.

In einigen Übersetzungsumgebung einschließlich Bibliotheksheader in C++ kann die externen Namen herausheben, die auch im std-Namespace im globalen Namespace, mit einzelnen using-Deklarationen für jeden der Namen deklariert werden.Andernfalls stellt der Header keine Bibliotheksnamen in den aktuellen Namespace vor.

Im C++-Standard erfordert, dass die C-Standardheader alle externen Namen im - Namespace std deklarieren, dann wird sie in den globalen Namespace mit einzelnen using-Deklarationen für jeden der Namen aus.Aber in einer Übersetzungsumgebung schließen die C-Standardheader keine Namespacedeklarationen ein und deklarieren alle Namen direkt im globalen Namespace.Daher ist die Methode, portabelste Namespaces zu begegnen, zwei Regeln zu beachten:

  • Um im - Namespace std sicherlich zu deklarieren umfassen ein externer Name der bisher in <stdlib.h>beispielsweise deklariert wird den Header <cstdlib>.Kenntnisse Sie, dass der Name möglicherweise auch im globalen Namespace deklariert wird.

  • Um im globalen Namespace einen externen Namen sicherlich zu deklarieren, der in <stdlib.h>deklariert wird, schließen Sie den Header <stdlib.h> direkt ein.Kenntnisse Sie, dass der Name möglicherweise auch im - Namespace std deklariert wird.

Wenn Sie std::abort aufrufen möchten, um nicht ordnungsgemäß beendet zur Folge haben, sollten Sie <cstdlib>einschließen.Wenn Sie abort aufrufen möchten, sollten Sie <stdlib.h>einschließen.

Alternativ können Sie die Deklaration schreiben:

using namespace std;

das alle Bibliotheksnamen in den aktuellen Namespace führt.Wenn Sie Include-Direktiven dieser Deklaration sofort schließlich schreiben, markieren Sie die Namen in den globalen Namespace aus.Sie können Namespaceüberlegungen im Rest der Übersetzungseinheit nach ignorieren.Vermeiden Sie auch die meisten Unterschiede über unterschiedliche Übersetzungsumgebung.

Es sei denn, ausdrücklich angegeben, definieren Sie möglicherweise nicht im Namen std-Namespace oder in einem Namespace, der innerhalb des std-Namespace, innerhalb des Programms geschachtelt ist.

Siehe auch

Referenz

C++-Standardbibliothek-Übersicht

Threadsicherheit in der C++-Standardbibliothek