Používání hlaviček knihoven C++
Vložit obsah standardní záhlaví pojmenováním v direktivu.
#include <iostream> // include I/O facilities
Můžete zahrnout standardní záhlaví v libovolném pořadí, standardní záhlaví více než jednou nebo dvěma nebo více standardní hlavičky, které definují stejné makro nebo stejného typu.Neobsahují standardní záhlaví v prohlášení.Nedefinujte makra, které mají stejné názvy jako klíčová slova, než standardní záhlaví.
Záhlaví C++ knihovna obsahuje jakékoli jiné záhlaví knihovny C++ je nutné definovat potřebné typy. (Zahrnují vždy explicitně C++ library záhlaví v překladu celku však nezbytné nejméně by nesprávné o jeho skutečné závislosti.) C standardní záhlaví nikdy obsahuje jiné standardní záhlaví.Standardní záhlaví deklaruje nebo definuje pouze entity, které je popsáno v tomto dokumentu.
Každá funkce v knihovně je deklarován v standardní záhlaví.Na rozdíl od ve standardním C standardní záhlaví nikdy obsahuje makro maskování s stejný název jako funkce, která skrývá deklarace funkce a lze dosáhnout stejného efektu.Další informace o maskování makra, viz Konvence knihovny C++.
Všechny názvy jiných než operator delete a operator new v knihovně C++ záhlaví jsou definovány v std oboru názvů nebo v oboru názvů, který je vnořen do std obor názvů.Odkaz na název cin, například jako std::cin.Uvědomte si však, že názvy maker se nevztahují kvalifikaci v oboru názvů, takže vždy psát __STD_COMPLEX bez oboru názvů kvalifikátor.
V některých prostředích překlad včetně záhlaví C++ knihovny může Zdvihadlo externích názvů deklarované v std obor názvů do globální obor názvů, u jednotlivých using prohlášení pro jednotlivé názvy.Jinak nemá záhlaví Ne zavést všechny názvy knihovny do aktuálního oboru názvů.
C++ Standard vyžaduje, že C standardní záhlaví deklarovat všechny externí názvy v oboru názvů std, pak je Zdvihadlo na globální obor názvů u jednotlivých using prohlášení pro jednotlivé názvy.Ale v některých prostředích překlad C standardní záhlaví obsahovat žádná deklarace oboru názvů, všechny názvy přímo v globální obor názvů deklarace.Většina přenosných způsob řešení obory názvů tedy dodržovat dvě pravidla:
Assuredly deklarace oboru názvů std externí název, který je tradičně deklarován ve <stdlib.h>, patří například hlavičku <cstdlib>.Vědět, že název může být také deklarovat v globální obor názvů.
Assuredly v globální obor názvů deklarace externí název deklarované v <stdlib.h>, Vložit hlavičku <stdlib.h> přímo.Víte, že název může být také deklarovat v oboru názvů std.
Proto pokud chcete volat std::abort způsobit abnormální ukončení, měli byste zahrnout <cstdlib>.Pokud chcete volat abort, měli byste zahrnout <stdlib.h>.
Můžete také napsat prohlášení:
using namespace std;
které přináší všechny názvy knihovny do aktuálního oboru názvů.Pokud píšete toto prohlášení ihned po všech direktiv, Zdvihadlo názvů do oboru názvů globální.Následně můžete ignorovat aspekty oboru názvů ve zbývající jednotky překladu.Také vyhnout většině rozdíly v prostředí různých překladů.
Pokud není výslovně uvedeno jinak, nemusí definovat názvy std oboru názvů, nebo v oboru názvů, který je vnořen do std obor názvů v rámci programu.