list-1
static int i;
list-2
namespace n { int a; } // このあと`;`は不要 namespace n // 同じ名前のnamespaceをつづけて書くことも可能 { int b; } int i = n::a; // aはnamespace nに存在して、かつpublic扱い n x; // namesapceのnは型ではないのでエラー class c { namespace n // クラス内でnamespaceの宣言は不可なのでエラー { } };
list-3
using namespace std;
list-4
using std::string;
list-5
namespace N { int x,y; } void func() { float x; using N::x; // エラー (x の2重宣言) using namespace N; x = 1.0; // ローカルの x にアクセス N::x = 1; // N::x にアクセス y = 2; // N::y にアクセス }
list-6 doodle.h
namespace doodle { void f(); }
list-7 doodle.cpp
#include "doodle.h" void doodle::f() { // ... }
list-8
namespace { void f() {} }
list-9
void f() {} static void f(int){} static void g() { f(0); // OK, calls `f(int)` f(); // OK, calls `f()` }
list-10
void f(){} namespace{ void f(int){}} namespace{ void g(){ f(0); // `f(int)`を呼び出せる f(); // これは`f(int)`を呼び出そうとしてエラーになる } }
list-11
::f(); // これなら`f()`を呼び出せる