文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

C/C++中命名空间(namespace)详解及其作用介绍

2024-04-02 19:55

关注

概述

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

在这里插入图片描述

命名空间

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

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

在这里插入图片描述

命名空间的作用

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

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

在这里插入图片描述

自定义命名空间

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

格式:


namespace 命名空间名 { 
    声明;
}

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

命名空间成员的方法

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

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

案例

h1.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

h2.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 "h1.h"
#include "h2.h"
using namespace std;

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

    return 0;
}

到此这篇关于C/C++中命名空间(namespace)详解及其作用介绍的文章就介绍到这了,更多相关C++命名空间内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     801人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     348人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     311人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     432人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     220人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯