美文网首页C/C++
命名空间 namespace

命名空间 namespace

作者: 谢小帅 | 来源:发表于2017-07-18 22:31 被阅读25次

命名空间 附加信息来区分不同库中相同名称的函数、类、变量等。使用了命名空间即定义了上下文。本质上,命名空间就是定义了一个范围。

定义命名空间

命名空间的定义使用关键字 namespace,后跟命名空间的名称。

opencv 的命名空间(部分)

namespace cv
{
    static inline uchar abs(uchar a) { return a; }
    static inline ushort abs(ushort a) { return a; }
    static inline unsigned abs(unsigned a) { return a; }
    static inline uint64 abs(uint64 a) { return a; }

    using std::min;
    using std::max;
    using std::abs;
    using std::swap;
    using std::sqrt;
    using std::exp;
    using std::pow;
    using std::log;
}

为了调用带有命名空间的函数或变量,需要在前面加上命名空间的名称,如下所示:

cv::boxFilter();

菜鸟教程实例

#include <iostream>
using namespace std;
 
// 第一个命名空间
namespace first_space {
   void func() {
      cout << "Inside first_space" << endl;
   }
}
// 第二个命名空间
namespace second_space {
   void func() {
      cout << "Inside second_space" << endl;
   }
}
int main () {
 
   // 调用第一个命名空间中的函数
   first_space::func();
   
   // 调用第二个命名空间中的函数
   second_space::func(); 

   return 0;
}

输出

Inside first_space
Inside second_space

using 指令

使用using namespace指令,这样在使用命名空间时就可以不用在前面加上命名空间的名称,该指令会告诉编译器,后续代码将使用指定命名空间中的名称。

嵌套的命名空间

命名空间可以嵌套,您可以在一个命名空间中定义另一个命名空间,如下所示:

namespace namespace_name1 {
   // 代码声明
   namespace namespace_name2 {
      // 代码声明
   }
}

通过使用 :: 运算符来访问嵌套的命名空间中的成员:

// 访问 namespace_name2 中的成员
using namespace namespace_name1::namespace_name2;
 
// 访问 namespace:name1 中的成员
using namespace namespace_name1;

实例

#include <iostream>
using namespace std;
 
// 第一个命名空间
namespace first_space{
   void func(){
      cout << "Inside first_space" << endl;
   }
   // 第二个命名空间
   namespace second_space{
      void func(){
         cout << "Inside second_space" << endl;
      }
   }
}

using namespace first_space::second_space;

int main () {
 
   // 调用第二个命名空间中的函数
   func();
   
   return 0;
}

输出

Inside second_space

相关文章

  • 命名空间 namespace

    /*命名空间:命名空间是一种封装事物的方法命名空间怎么声明?关键字: namespace 导入命名空间: use起...

  • 命名空间(namespace)

    命名空间,也称名称空间,名字空间。命名空间是用来组织和重构代码的。如同名字一样的意思,NameSpace(名字空间...

  • 命名空间 namespace

    命名空间 附加信息来区分不同库中相同名称的函数、类、变量等。使用了命名空间即定义了上下文。本质上,命名空间就是定义...

  • 命名空间namespace

    outer_func的local中的outer_arg的值为1.inner_func的local中的outer_a...

  • 命名空间(namespace)

    通常来说,命名空间是唯一识别的一套名字,这样当对象来自不同的地方但是名字相同的时候就不会含糊不清了。 为什么需要命...

  • namespace 命名空间

    避免命名冲突, 相当于引入类使用时需要nmsl.anmsl.b

  • 命名空间 namespace

    namespace 在typescript里给我们带来的好处就是给我们一个类似模块化开发的方式,让我们能尽量少的声...

  • C#随笔1

    1命名空间 语法 namespace 命名空间名称{若干个类型} ORnamespace 命名空间名称.子命名...

  • 四十、Docker网络-网络命名空间

    网络命名空间 Linux的Namespace(命名空间)技术是一种隔离技术,常用的Namespace有 user ...

  • C++入门05 --命名空间,继承,访问权限,初始化列表

    命名空间 命名空间主要是用来解决命名冲突的; namespace xxxx { }:命名空间的定义; 利用::域运...

网友评论

    本文标题:命名空间 namespace

    本文链接:https://www.haomeiwen.com/subject/jwhkkxtx.html