次の方法で共有


C++ ライブラリ ヘッダーの使用

INCLUDE のディレクティブで指定することにより、標準ヘッダーの内容が含まれています。

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

任意の順序で標準ヘッダー、標準ヘッダーを何度も含めることも、同じマクロまたは同じを定義する複数の標準ヘッダーを選択します。 宣言内で標準ヘッダーを含めないでください。 標準ヘッダーをインクルードする前にキーワードと同じ名前を持つマクロを定義しないでください。

C ++.ライブラリのヘッダーは必要な型を定義する必要がある C++ ライブラリのヘッダーが含まれています。ただし、実際の依存関係について誤って推測される (変換単位に必要な常に明示的に記述します。C++ ライブラリのヘッダーを)。標準の C ヘッダーが、他の標準ヘッダーは含まれません。 標準ヘッダーはドキュメント上で説明されているエンティティだけ宣言または定義します。

ライブラリ内の関数は、標準ヘッダーで宣言されます。 標準 C とは異なり、標準ヘッダーは関数宣言をクロークおよび同じ効果を実現する関数と同じ名前がマスク マクロがありません。 マスク マクロの詳細については、「C++ ライブラリの規則」を参照してください。

C++ のライブラリのヘッダーの operator deleteoperator new 以外のすべての名前が std の名前空間、または std の名前空間内で入れ子にした名前空間で定義されます。 std::cinと名前 cin (たとえば"を参照してください。 ただし、マクロ名が名前空間の修飾が適用されないため、名前空間修飾子なしで __STD_COMPLEX を常に書き込むことに注意してください。

C ++.ライブラリのヘッダーを含む一部の変換の環境では、名前のユーザーの using の宣言でグローバル名前空間に std 名前空間で宣言されている外部名をホイストする可能性があります。 それ以外のヘッダーは、現在の名前空間にライブラリ名がありません。

C++ 標準では C の標準ヘッダーが名前空間 stdのすべての外部名を宣言することが必要ですが、名前のユーザーの using の宣言でグローバル名前空間にホイストします。 ただし、変換の環境に C の標準ヘッダーは、グローバル名前空間のすべての名前を直接宣言する名前空間宣言は含まれません。 したがって、名前空間を処理するポータブル方法は 2 個の規則に従うことです:

  • 確実に名前空間 std で宣言するに stdlib.h で <行われてなど>、宣言された外部名は、ヘッダーの cstdlib が <含まれます。> 名前が、グローバル名前空間で宣言されている可能性があることを認識します。

  • 確実にグローバル名前空間に stdlib.h で <宣言された外部名を宣言するに>stdlib.h ヘッダーを直接 <> 含めます。 名前は、名前空間 stdで宣言される可能性があることを認識します。

したがって、異常終了させるには、std::abort を呼び出す場合 cstdlib を <含める必要があります。> abortを呼び出す場合 stdlib.h を <含める必要があります。>

また、宣言を記述できます:

using namespace std;

すべてのライブラリ名を取り込むかを現在の名前空間にあります。 この宣言を一度記述ディレクティブ、ホイストしますグローバル名前空間の名前を指定します。 その後変換単位残りの名前空間の考慮事項を無視できます。 異なる変換の環境にわたってほとんどの違いはありません。

特に記載がない限り、次の std 名前空間、プログラム内の std の名前空間内に入れ子になった名前空間の名前を定義することはできません。

参照

関連項目

C++ 標準ライブラリの概要

C++ 標準ライブラリ内のスレッド セーフ