写程序的时候总会声明一个命名空间总会让我想到不同的语言有不同的机制。
例如:C#
namespace test{}
其实这个和声明C++中的命名空间是一样的,
using namespace std;
名字空间是用来按照逻辑,对类进行划分,增强了程序的可读性,而且减少了命名的冲突。看到这个作用,我忽然想到了Java中的包,这两种东西感觉作用一致,都是为了避免名称冲突才进行一种区域性的划分的。
import java.util.*;
说到底就是为了解决命名冲突的。
相似也有区别:
1, java里只有类,所以只需要把类定义在各自的包里就可以避免重复了.c++的命名空间里,不但可以包括类,还可以包括函数,变量,模板等.
2,C#里面的名称空间和java中的包都属于访问权限的控制机制,就是说,只有具备相应的权限才允许代码访问它们内部的类。但是java中的包需要对应一个物理文件夹,文件夹名必须和包的名称一致,C#中的名称空间则不受这种限制。
*********************************************************************************************
这两种东西,都是起到了一个分类打包,便于调用的作用。