fun2調用不命名空間也不需要加B::?
因為fun2()函數本身不重復,所以不用加using namespace B或B::也可以直接調用吧?
用了using namespace B后 里面的fun()也不需要加B::了吧?因為就是在B 空間里調用的?
不知道我理解的對嗎?
因為fun2()函數本身不重復,所以不用加using namespace B或B::也可以直接調用吧?
用了using namespace B后 里面的fun()也不需要加B::了吧?因為就是在B 空間里調用的?
不知道我理解的對嗎?
2016-08-26
舉報
2016-08-29
第一個問題,如果fun2沒有定義在命名空間B里面,則被調用時當然不用using namespace B.
但他已經被定義在B命名空間里了,則被調用時,必須顯式的用B::fun2,或者用using namespaced B的方式。
你試試在文件頭只寫了#include <iostream>,但是不寫using namespace std,cin和cout能否直接使用?顯然不能。如果寫成std::cin和std::cout,則可以正常使用。為什么?在文件里cin和cout是獨立出現沒有重復的,但若不聲明命名空間,仍然無法使用。
2016-08-26
我理解,用了“using namespace XXX”以后,表示此行下面所有沒有明確指出命名空間的變量,都默認使用XXX作為命名空間。
如果下方的代碼重新寫了“using namespace YYY”,那么此行向下的默認命名空間就都是YYY。
這個和變量名重復與否,其實沒有必然關系。