标题:命名空间

 

 

支持多范型编程

引用的简洁性

主体的简洁性

优劣比较

C++

+1

+1

-1

9

Java

-1

+1

-1

8

C#

-1

-1

+1

8

讨论:

1.   C++通过namespace关键字支持命名空间,并且由于C++支持多范型编程,允许在命名空间里面声明变量、函数,相对C#和Java,对用户来说这提供了更加丰富的选择。

2.    C#通过namespace关键字支持命名空间,但是由于C#不支持多范型编程,因此相对于C++,要扣掉一分。

3.    Java通过package关键字支持命名空间,但是Java不支持多范型编程,扣掉一分;而且当引用某个命名空间的部分或者整体的类型的时候,语法上更加复杂一些(见下例),所以还要扣掉一分;但是由于命名空间主体的定义部分更加的简略,所以加一分(见下例)。

实例:

namespace test // C++的命名空间定义 
    
{ 
     
       using n.a;              //引入一个类型 
    
       using n;          //引入n的部分或者所有的类型 
    
       int i; 
     
       int fun();//支持多范型 
    
       class foo{}; 
     
} 
     
 
package test; // Java的命名空间定义 
    
//不必象C#和C++那样把命名空间的主题放在{}当中,更加的简略 
    
import n.a;      //引入一个类型 
    
import n.*;     //引入n的部分或者所有的类型,语法相对于C++和C#更加的复杂一些 
    
class foo{}; 
     
 
namespace test // C#的命名空间定义 
    
{ 
     
       using n.a;              //引入一个类型 
    
       using n;          //引入n的部分或者所有的类型 
    
       class foo{}; 
     
}