c++ 关于命名空间,头文件里面有一个相当于声明的名称空间,而代码文件又定义一个相同的名称空间
c++关于命名空间,头文件里面有一个相当于声明的名称空间,而代码文件又定义一个相同的名称空间请问一下,为什么这样子,一定要这样做吗?...
c++ 关于命名空间,头文件里面有一个相当于声明的名称空间,而代码文件又定义一个相同的名称空间请问一下,为什么这样子,一定要这样做吗?
展开
1个回答
展开全部
命名空间的主要作用是限制重名,即在不同的命名空间中可以使用相同的名字。
例如上海可以有【中山路】,北京也可以有【中山路】,广州也可以有【中山路】。
虽然大家的路名都是【中山路】。但是只要提供了命名空间--城市名,就可以将这几条路区分开来。
在头文件中,我们需要使用命名空间对函数进行限定。
// 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
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询