贡献者: addis
namespace
函数的一个重要例外就是,argument 的 namespace
会从 function
取消。这样 namespace 中的函数就有可能和 namespace 外的函数发生冲突!解决的办法就是定义自己的 namespace,或者直接更改函数名。
#include <iostream>
以后,getchar()
没有 namespace。这是历史遗留问题。一些数学函数也没有。
::
来解决。
using std::name;
)不会发生冲突(没有 namespace 的函数被隐藏),但 using directive(using namespace std;
)就会冲突!
namespace A {}
内部使用 using namespace B;
在 namespace A {}
外部使用 using A::xx;
是安全的,即不会引入 using namespace B
。但如果使用 using namespace A
,则会引入 using namespace B
。
namespace A {}
内部使用 using namespace B;
新定义的函数也不会与 B 中的同名函数 overload,而是会直接覆盖 B 中的函数。
 
 
 
 
 
 
 
 
 
 
 
友情链接: 超理论坛 | ©小时科技 保留一切权利