c++ 关于命名空间,头文件里面有一个相当于声明的名称空间,而代码文件又定义一个相同的名称空间

c++关于命名空间,头文件里面有一个相当于声明的名称空间,而代码文件又定义一个相同的名称空间请问一下,为什么这样子,一定要这样做吗?... c++ 关于命名空间,头文件里面有一个相当于声明的名称空间,而代码文件又定义一个相同的名称空间请问一下,为什么这样子,一定要这样做吗? 展开
 我来答
GiraKoo
2017-02-07 · 还没有任何签名哦
GiraKoo
采纳数:3949 获赞数:11110

向TA提问 私信TA
展开全部

命名空间的主要作用是限制重名,即在不同的命名空间中可以使用相同的名字。

例如上海可以有【中山路】,北京也可以有【中山路】,广州也可以有【中山路】。

虽然大家的路名都是【中山路】。但是只要提供了命名空间--城市名,就可以将这几条路区分开来。

在头文件中,我们需要使用命名空间对函数进行限定。

// test.h
namespace test{
    void func();
}

在代码文件中,虽然我们引用了test.h,但是如果不在func也放在同样命名空间中,就会导致编译器认为这是两个函数。

// test.cpp
#include "test.h"
namespace test{
    void func()
    {
        // TODO
    }
}

void func()   // ←这是一个全局的func,和test命名空间中的func是两个函数。
{
    // TODO
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式