|
|
(4人の利用者による、間の6版が非表示) |
1行: |
1行: |
− | {{title|namespace}} | + | {{title|namespace}} |
− | 文法:
| + | |
| | | |
− | <syntaxhighlight lang="cpp">
| + | = |
− | namespace 名前 {
| + | |
− | 宣言リスト;
| + | |
− | }
| + | |
− | </syntaxhighlight>
| + | |
− | namespaceキーワードを使うと、新しいスコープを作成することができます。
| + | |
− | 名前はオプションで、省略した場合には無名の名前空間が作られます。
| + | |
− | 一度名前空間を作成すると、以下の例のように、明示して参照するか、あるいは[[cpp/keyword/using | using]]キーワードを使用して参照することになります:
| + | |
| | | |
− | <syntaxhighlight lang="cpp">
| + | cppnamespace |
− | namespace CartoonNameSpace {
| + | |
− | int HomersAge;
| + | / |
− | void incrementHomersAge() {
| + | |
− | HomersAge++;
| + | |
− | }
| + | |
− | }
| + | |
− | int main() {
| + | |
− | ...
| + | |
− | CartoonNameSpace::HomersAge = 39;
| + | |
− | CartoonNameSpace::incrementHomersAge();
| + | |
− | cout << CartoonNameSpace::HomersAge << endl;
| + | |
− | ...
| + | |
− | }
| + | |
− | </syntaxhighlight>
| + | |
| | | |
− | ===無名の名前空間===
| + | {| |
− | | + | |
− | 名前のない名前空間は、無名の名前空間と呼ばれます。それぞれの名前空間は翻訳単位ごとにユニークな名前が設定されます。
| + | |
− | 無名の名前空間に対しては[[cpp/keyword/using | using]]キーワードを適用することはできませんが、その変わり、usingキーワードがすでに適用されているかのように動作します。
| + | |
− | | + | |
− | <syntaxhighlight lang="cpp">
| + | |
− | namespace {
| + | |
− | 宣言リスト;
| + | |
− | }
| + | |
− | </syntaxhighlight>
| + | |
− | | + | |
− | ===名前空間の別名===
| + | |
− | | + | |
− | 名前空間に対して、新しい名前(別名)を付けたり、ネストした名前空間を作ることもできます。
| + | |
− | | + | |
− | <syntaxhighlight lang="cpp">
| + | |
− | namespace identifier = namespace-specifier;
| + | |
− | </syntaxhighlight>
| + | |
− | | + | |
− | 関連トピック: [[cpp/keyword/using | using]]
| + | |