C++ 命名空间(namespace)

来源:互联网 发布:ubuntu 16.04 ip设置 编辑:程序博客网 时间:2024/05/01 17:24

实现可见性或访问的限制

  • (1)C++

    #include 头文件 + 命名空间

    在该头文件里的、该命名空间下的某某函数,某某类

  • (2)Java

    包机制 + 访问修饰符

重命名命名空间

一般不直接using namespace **;直接将自己暴露给外部,为了避免命名的混淆,还是放在特定的命名空间里。有时一些命名层次较深,我们需要对其进行重命名:

namespace ublas = boost::numeric::ublas;

usage

  • (1)如我们要使用 <functional> 里的,std(标准命名空间)里的 binary_function 类:

    #include <functional>class Distance :public std::binary_function<Record, Record, double>{    ...};
  • (2) 命名空间也存在一定的嵌套关系,或层次关系(空间之中又有空间),就像目录结构一样

    #include <boost\numeric\ublas\symmeric.hpp>int main(int, char**){    boost::numeric::ublas::symmeric_matrix<double> sigma;                // 命名空间:boost::numeric::ublas                // 文件路径:boost\numeric\ublas                // 一一对应    return 0;}
0 0
原创粉丝点击