我看很多人的代码 2个头文件都用
namespace dd{
class a{
public:
a();
}
}
namespace dd{
class B()
{
public:
aa();
}
}
然后在main 函数里面声明 using namespace dd;
可是函数实现 前面还是要加dd::
比如 dd::classA::A()
{
}
有什么意义
c++ namespace问题
答案:4 悬赏:60 手机版
解决时间 2021-02-03 05:08
- 提问者网友:却不属于对方
- 2021-02-02 19:38
最佳答案
- 五星知识达人网友:行雁书
- 2021-02-02 21:12
如果你在命名空间里定义函数的实现,就不用加dd::了
比如
namespace dd{
class A{
public:
A();
}
A::A()
{
}
}
如果你在命名空间外面定义函数实现,就要加dd::
namespace dd{
class A{
public:
A();
}
}
dd::A::A()
{
}
比如
namespace dd{
class A{
public:
A();
}
A::A()
{
}
}
如果你在命名空间外面定义函数实现,就要加dd::
namespace dd{
class A{
public:
A();
}
}
dd::A::A()
{
}
全部回答
- 1楼网友:几近狂妄
- 2021-02-03 00:07
首先声明空间的名字不能够重复,是编译不过的,不然系统不知道你调用哪一个DD空间的内容。
using namespace dd;的作用就是把后面的变量和函数都使用dd空间里面的,直到下一个using namespace 名字;出现,dd::classA::A()前面使用了using namespace dd;后面可以不加dd::。但是为了防止出错,加上dd::是明确告诉系统我用的class A是dd空间的。程序员只是怕空间多,变量会换乱,所以明确一下空间而已。
- 2楼网友:你可爱的野爹
- 2021-02-02 22:37
(1)namespace 形象点说,就像“家”一样, 里面可以有函数,变量,类 。当你要使用这个家里的东西,必须声明他,表示你用的这个东西从那来的。
(2) (3) <iostream> <iostream.h>这两个文件基本的功效是一样的,前者是c++标准头文件,而后者是为了保持 和c兼容采用的头文件,而c语言 没用命名空间这个概念, 所以你的第二个问题可以不用考虑,因为namespace std 在 <iostream> 中声明过,而没有在 <iostream.h>中声明
(4) 关于这个使用高不高,如果项目大型的话,使用频率就比较高,如果小型项目,用的比较少
- 3楼网友:夜风逐马
- 2021-02-02 21:43
using namesapce dd;是用在调用的时候的,
实现的时候是没用的,
必须如下实现
dd:classA:A()或者
namespace dd{
classA:A()
{
}
}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯