永发信息网

c++ namespace问题

答案:4  悬赏:60  手机版
解决时间 2021-02-03 05:08
  • 提问者网友:却不属于对方
  • 2021-02-02 19:38
我看很多人的代码 2个头文件都用
namespace dd{
class a{
public:
a();
}
}

namespace dd{
class B()
{
public:
aa();

}
}

然后在main 函数里面声明 using namespace dd;
可是函数实现 前面还是要加dd::
比如 dd::classA::A()
{

}
有什么意义
最佳答案
  • 五星知识达人网友:行雁书
  • 2021-02-02 21:12
如果你在命名空间里定义函数的实现,就不用加dd::了
比如
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() { } }
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯