C/C++中命名空间namespace有什么用

发布时间:2021-09-05 19:57:31 作者:小新
来源:亿速云 阅读:275

这篇文章主要介绍C/C++中命名空间namespace有什么用,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

概述

命名空间 (namespace) 可以帮助我们区分不同库中相同名称的函数, 类, 变量等. 使用了命名空间即定义了上下文. 命名空间就是定义了一个范围.

C/C++中命名空间namespace有什么用

命名空间

为了解决 C++ 标准库中的标识符与程序中的全局标识符之间以及不同库中的所有标识符之间的命名冲突. 标准 C++ 库的所有标识符都定义在一个名为 std 的命名空间中. 在程序中用到 C++ 标准库时, 使用 std 作为限定.

我们在写 “Hello World” 的时候就曾用到过命名空间 (namespace):

C/C++中命名空间namespace有什么用

命名空间的作用

命名空间是 ANSI C++ 引入可以由用户命名的作用域, 用来处理程序中常见的同名冲突. 在 C++ 程序中, 有大量的变量, 函数和类名. 如果他们都存在于同一个全局命名空间中, 会导致很多冲突.

命名空间的机制, 对于声明于其中的名称都进行了本地化:

C/C++中命名空间namespace有什么用

自定义命名空间

我们可以自己定义命名空间. 我们把一些全局分别放在各个名字空间, 从而与其他全局实体分隔开来.

格式:

namespace 命名空间名 { 
    声明;
}

命名空间的作用是建立一些互相分隔的作用域. 把一些全局实体分隔开来, 以免产生名字冲突.

命名空间成员的方法

一般方法: 引用命名空间成员时, 用命名空间名对名命名空间成员进行限定, 以区别同名标识符. (命名空间::命名空间成员名)

简化使用命名空间成员的机制:

案例

h2.h:

#ifndef PROJECT8_H1_H
#define PROJECT8_H1_H

namespace kitchen {
    class Table {
    private:
        int legs;
        int price;
    public:
        Table(int l, int p){
            legs = l;
            price = p;
        }
    };
}

#endif //PROJECT8_H1_H

h3.h:

#ifndef PROJECT8_H2_H
#define PROJECT8_H2_H

namespace office {
    class Table {
    private:
        int rows;
        int cols;
    public:
        Table(int r, int c){
            rows = r;
            cols = c;
        }
    };
}

#endif //PROJECT8_H2_H

mian.cpp:

#include <iostream>
#include "h2.h"
#include "h3.h"
using namespace std;

int main() {
    kitchen::Table t1(6, 300);
    office::Table t2(6, 2);

    return 0;
}

以上是“C/C++中命名空间namespace有什么用”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注亿速云行业资讯频道!

推荐阅读:
  1. Python/C++如何实现字符串逆序
  2. c/c++ 学习

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

c++ namespace

上一篇:javascript超级指的是什么

下一篇:怎么用opencv实现人脸检测和眼睛检测功能

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》