C++ Java C#的比较-成员归属权的表示
2006-02-27 23:21
686 查看
标题:成员归属权的表示
讨论:
类的成员分成两类:实例成员和静态成员;命名空间的成员只是包含类型成员(C++还包含函数和数据成员)。这里所说的成员归属权就是指得这两类成员的归属权。
1. 由于C++支持引用和指针,分别使用”.”和”->”表示;类的静态成员和命名空间的类型、函数和变量的归属权使用”::”表示。也就是说,归属权在C++中有3种不同的表示法。相对于Java 和C#,这增加了记忆、理解和书写的复杂性,要减少一分。
2. Java对于归属权的表示只是使用”.”表示。
3. C#对于归属权的表示只是使用”.”表示。
实例:
// C++的成员归属权的表示
{
Foo foo;
foo.someFun(); //引用归属权
Foo *p = new Foo();
p->someFun(); //指针归属权
Foo::StaticValue = 0; //类静态成员归属权
std::vector<int> vec; //命名空间归属权
}
// Java的成员归属权的表示
{
Foo foo;
foo.someFun(); //引用归属权
Foo.StaticValue = 0; //类静态成员归属权
java.lang.Vector vector vec = new java.lang.Vector(); //命名空间归属权
}
// C#的成员归属权的表示
{
Foo foo;
foo.someFun(); //引用归属权
Foo.StaticValue = 0; //类静态成员归属权
System.Int32 i = 0; //命名空间归属权
}
| 成员归属权的表示的简洁性 | 优劣比较 |
C++ | -1 | 9 |
Java | +1 | 10 |
C# | +1 | 10 |
讨论:
类的成员分成两类:实例成员和静态成员;命名空间的成员只是包含类型成员(C++还包含函数和数据成员)。这里所说的成员归属权就是指得这两类成员的归属权。
1. 由于C++支持引用和指针,分别使用”.”和”->”表示;类的静态成员和命名空间的类型、函数和变量的归属权使用”::”表示。也就是说,归属权在C++中有3种不同的表示法。相对于Java 和C#,这增加了记忆、理解和书写的复杂性,要减少一分。
2. Java对于归属权的表示只是使用”.”表示。
3. C#对于归属权的表示只是使用”.”表示。
实例:
// C++的成员归属权的表示
{
Foo foo;
foo.someFun(); //引用归属权
Foo *p = new Foo();
p->someFun(); //指针归属权
Foo::StaticValue = 0; //类静态成员归属权
std::vector<int> vec; //命名空间归属权
}
// Java的成员归属权的表示
{
Foo foo;
foo.someFun(); //引用归属权
Foo.StaticValue = 0; //类静态成员归属权
java.lang.Vector vector vec = new java.lang.Vector(); //命名空间归属权
}
// C#的成员归属权的表示
{
Foo foo;
foo.someFun(); //引用归属权
Foo.StaticValue = 0; //类静态成员归属权
System.Int32 i = 0; //命名空间归属权
}
相关文章推荐
- C#、Java、C、C++初始化数组过程和比较
- Java,C#,C++在继承,覆盖和多态,抽象类等几个方面的比较归纳
- 六种流行的语言---C、C++、python、Java、php、C#比较[转]
- C++、Java和C#的特性比较
- C#与C++、Java之比较概览
- c++/java/c# 几种编程语言的指针、引用比较
- Java,C#,C++在继承,覆盖和多态,抽象类等几个方面的比较归纳
- 一、从Java、C#到C++ (为什么C++比较难)
- C# 与 C 、 C++ 、 D 、 Java 的性能比较(二)
- 比较C#、C++和Java最重要的功能
- C++、Java和C#的特性比较
- c#,C++,Java比较
- 六种流行的语言---C、C++、python、Java、php、C#比较[转]
- C#/Java/C/C++基本类型所占大小及表示范围
- 比较C#与C++、Java的异同
- Java中的Package.Import.Class以及和C++的比较(二)--类成员初始化及顺序
- C#与C++、Java之比较概览(转)
- C# 与 C 、 C++ 、 D 、 Java 的性能比较(三)
- C#与C++、Java之比较概览
- C++、Java/C#之比较