// 命名空间
#include <iostream>
using namespace std;

namespace A
{
    // 声明变量成员，可以指定初始化
    int x = 10;
}

namespace B
{
    int x = 20;
}

namespace C
{
    // 命名空间的嵌套
    namespace AA
    {
        int x = 100;
    }
    namespace BB
    {
        int x = 200;
    }
}

namespace D
{
    int x = 1;
    void show_x() // 定义函数
    {
        cout << "D namespace x: " << x << endl;
    }
    int add(int y); // 声明函数
}

int D::add(int y)
{
    // 可以返回当前命名空间的所有成员
    return x + y;
}

int main()
{
    cout << "A x = " << A::x << endl;
    cout << "B x = " << B::x << endl;
    cout << "C-AA x = " << C::AA::x << endl;
    cout << "C-BB x = " << C::BB::x << endl;
    // 调用 D 的 show_x() 函数
    D::show_x();
    // 调用 D 的 add(int) 函数
    cout << "D::add(100) = " << D::add(100) << endl;

    return 0;
}