C++ Java C#的比较-命名空间
2006-02-27 00:28
459 查看
标题:命名空间
讨论:
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{};
}
| 支持多范型编程 | 引用的简洁性 | 主体的简洁性 | 优劣比较 |
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{};
}
相关文章推荐
- C++、Java和C#的特性比较
- C++、Java和C#的特性比较
- C++ Java C#的比较-成员归属权的表示
- C++、Java和C#的特性比较
- c#,C++,Java比较
- C++、java、C#命名空间比较
- C#和java,C#和C++各有什么不同(2) -- 语言规范的比较
- C# 与 C 、 C++ 、 D 、 Java 的性能比较(二)
- JAVA C# C/C++之比较学:参数传递
- c++/java/c# 几种编程语言的指针、引用比较
- 一、从Java、C#到C++ (为什么C++比较难)
- 六种流行的语言---C、C++、python、Java、php、C#比较[转]
- C#与C++、Java之比较概览
- C# 与 C 、 C++ 、 D 、 Java 的性能比较(三)
- C++、Java/C#之比较
- c++/java/c# 几种编程语言的指针、引用比较
- Java,C#,C++在继承,覆盖和多态,抽象类等几个方面的比较归纳
- C#与C++、Java之比较概览
- 让我们来比较C#,C++和Java之间重写虚函数的区别
- Java,C#,C++在继承,覆盖和多态,抽象类等几个方面的比较归纳