命名

命名空间 属于 C++

3 个练习

关于 命名空间

代码组织的一个重要方法是命名空间。 两个函数可能会发生命名冲突,可以通过将它们放入不同的命名空间来解决。 命名空间可以嵌套,这或许有助于组织大型代码库。 访问命名空间是通过作用域解析运算符::完成的。

下面的示例展示了两个不同foo函数的使用。 通过给它们分别加上命名空间前缀,就可以一起使用。

namespace my_ns {
    int foo() {
        return 44;
    }
    namespace my_inner_ns {
        int baz() {
            return 90;
        }
    }
}
namespace my_other_ns {
    int foo() {
        return -2;
    }
}
int myresult{my_ns::foo() + my_other_ns::foo() * my_ns::my_inner_ns::baz()};
Advanced

深层嵌套的命名空间可能过于冗长。 可以通过using进行命名空间导入来消除这种冗长。 这会把所有名称移到全局命名空间中。 为了保留一些区分,别名可能会很有用。

int my_other_result{my_ns::my_inner_ns::baz()};

using namespace my_ns::my_inner_ns; // importing the complete namespace
int also_other_result{baz()};

namespace m = my_ns; // setting an alias
namespace o = my_other_ns;

int also_my_result{m::foo() + o::foo() * m::my_inner_ns::baz()};
通过 GitHub 编辑 该链接会在新窗口或标签页中打开

学习 命名空间