为了账号安全,请及时绑定邮箱和手机立即绑定

fun2调用不命名空间也不需要加B::?

因为fun2()函数本身不重复,所以不用加using namespace B或B::也可以直接调用吧?

用了using namespace B后 里面的fun()也不需要加B::了吧?因为就是在B 空间里调用的?

不知道我理解的对吗?

正在回答

2 回答

第一个问题,如果fun2没有定义在命名空间B里面,则被调用时当然不用using namespace B.

但他已经被定义在B命名空间里了,则被调用时,必须显式的用B::fun2,或者用using namespaced B的方式。

你试试在文件头只写了#include <iostream>,但是不写using namespace std,cin和cout能否直接使用?显然不能。如果写成std::cin和std::cout,则可以正常使用。为什么?在文件里cin和cout是独立出现没有重复的,但若不声明命名空间,仍然无法使用。

1 回复 有任何疑惑可以回复我~
#1

Blossommmm 提问者

非常感谢!
2016-08-30 回复 有任何疑惑可以回复我~

我理解,用了“using namespace XXX”以后,表示此行下面所有没有明确指出命名空间的变量,都默认使用XXX作为命名空间。

如果下方的代码重新写了“using namespace YYY”,那么此行向下的默认命名空间就都是YYY。

这个和变量名重复与否,其实没有必然关系。

0 回复 有任何疑惑可以回复我~
#1

Blossommmm 提问者

但是如果两个不同的命名空间中定义了相同的变量名 就要用命名空间来区分了吧? 我问的第二个问题应该就是你说的意思了 看来是可以的 那么第一个问题呢?
2016-08-27 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
C++远征之起航篇
  • 参与学习       290962    人
  • 解答问题       817    个

C++亮点尽在其中,本课程是在C语言基础上的一个延伸,得以升华

进入课程

fun2调用不命名空间也不需要加B::?

我要回答 关注问题
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号