C++: 命名空间
2026/8/28 7:30:56 网站建设 项目流程

命名空间namespace 就是C++用来组织代码、避免名字冲突的一种机制

简单理解:命名空间就是一组变量、函数、类加一个“名字前缀”,让他们拥有唯一的身份。

例如:没有命名空间的情况下,工程中有两个类 都是System,编译器由于不知道你使用的是那个System ,就会出现问题。

class System { public: int a; }; class System { public: double b; };

但是如果使用命名空间

类A:

namespace ORB_SLAM2 { class System { }; }

类B:

namespace ROS { class System { }; }

现在依旧有两个System,但是使用时带上命名空间就不会出现问题

ORB_SLAM2::System ROS::System

namespace 的基本语法

namespace 名字 { // 类 // 函数 // 变量 }

命名空间可以嵌套:

namespace ORB_SLAM2 { namespace DBoW2 { class Vocabulary { }; } }

使用时

ORB_SLAM2::DBoW2::Vocabulary voc;

在ORB_SLAM2中的整体结构

ORB_SLAM2 (命名空间)

├── System (类)

├── Tracking (类)

├── Map (类)

├── KeyFrame (类)

├── MapPoint (类)

└── ORBVocabulary (类型别名)

调用关系

ORB_SLAM2::System ORB_SLAM2::Tracking ORB_SLAM2::Map ORB_SLAM2::ORBVocabulary

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询