Namespace:命名空间
2009-03-31 14:55
246 查看
Namespace:命名空间。
命名空间是用来解决不同的类和函数拥有相同的名称的问题。解决了命名冲突的问题。
namespace gxg
{
class A;
void BFunction();
}
namespace gaoxiaoguang
{
class A;
void BFunction();
}
使用方法:
gxg::A gxgA;
gaoxiaoguang::A gaoxiaoguangA;
gxg::BFunction();
gaoxiaoguang::BFunction();
我们写程序时使用标准的程序库经常会这样写:
#include <iostream>
std::cout << “hello world!” << std::endl;
或者
#include <iostream>
using namespace std;
cout << “hello world!” << endl;
这两句话的差异在于一个使用了using namespace std。”using directive会使namespace内的所有名字曝光。using directive 等于将这些名字宣告于namespace之外。这么一来,名称冲突问题就可能死灰复燃。”——《c++标准程序库》。也就是说,在两个命名空间都需要用到的时候,而且有重合的时候不能同时使用using namespace gxg和using namespace gaoxiaoguang照样会出现编译不通过的问题。
所以说,在使用命名空间的时候尽量不要用相同的名字,即使有相同的名字,最好不要设计到经常同时使用的地方。这个原则是为了避免不必要的冲突。或者是说在用每个函数和类的时候,不要嫌麻烦,全部写上其命名空间,保证不会出现命名冲突问题。
命名空间是用来解决不同的类和函数拥有相同的名称的问题。解决了命名冲突的问题。
namespace gxg
{
class A;
void BFunction();
}
namespace gaoxiaoguang
{
class A;
void BFunction();
}
使用方法:
gxg::A gxgA;
gaoxiaoguang::A gaoxiaoguangA;
gxg::BFunction();
gaoxiaoguang::BFunction();
我们写程序时使用标准的程序库经常会这样写:
#include <iostream>
std::cout << “hello world!” << std::endl;
或者
#include <iostream>
using namespace std;
cout << “hello world!” << endl;
这两句话的差异在于一个使用了using namespace std。”using directive会使namespace内的所有名字曝光。using directive 等于将这些名字宣告于namespace之外。这么一来,名称冲突问题就可能死灰复燃。”——《c++标准程序库》。也就是说,在两个命名空间都需要用到的时候,而且有重合的时候不能同时使用using namespace gxg和using namespace gaoxiaoguang照样会出现编译不通过的问题。
所以说,在使用命名空间的时候尽量不要用相同的名字,即使有相同的名字,最好不要设计到经常同时使用的地方。这个原则是为了避免不必要的冲突。或者是说在用每个函数和类的时候,不要嫌麻烦,全部写上其命名空间,保证不会出现命名冲突问题。
相关文章推荐
- Ext.namespace 命名空间的解析
- C++ 命名空间namespace .
- 浅谈几种常见语言的命名空间(Namespace)
- 关于 liferay 框架 后台需要获取不带namespace命名空间参数的 方法
- Struts2 Namespace_命名空间
- C++ 命名空间namespace .
- 关于命名空间 namespace的总结
- [No0000FB]C# 命名空间(Namespace)
- 第十一节,命名空间namespace
- 命名空间问题。namespace。也会弄死人的。已经添加引用了,但还是出现,class为定义。
- 2,3 c++中 #include< >头文件 和 命名空间 Using namespace std的解释和区别
- C++ namespace 命名空间详解
- PHP命名空间(Namespace)的使用详解
- 在Razor中如何引入命名空间?("import namespace in razor view")
- PHP命名空间namespace的定义方法详解
- [ 笔记 ] PHP 命名空间(namespace)
- .Net 2.0 新功能:命名空间别名限定符(namespace alias qualifier)
- C++命名空间 namespace的作用和使用解析
- PHP命名空间(Namespace)的使用详解
- thinkphp autoload 命名空间自定义 namespace