其他特征和标准 2000-12-23 00:00:00·
Adding翻译·yesky
1 2 下一页 ++支持操作符重载,而Java不支持,尽管重载方法在Java是支持的。C++允许程序员重载全局函数。C++对象模型需要复制构造函数以及赋值运算符,这在其它两种语言中是不需要的。
只有Java完全支持多个线程,对象和方法支持同步机制。而Object Pascal支持类引用,使得程序员很容易地使用方法指针,尤其是它的属性。
C++的标准通常ANSI/ISO C++标准,而Java和Object Pascal没有相应的公开标准。
文件、单元和包
在Java、C++和Object Pascal三种语言中,还有一个非常重要的区别,就是在于它们对文件中源代码的组织的不同。虽然它们都是用文件这一标准形式来保存源代码,但C++编译器却不能正确理解这些文件,而OP和Java编译器却能。尽管OP和Java中的概念名称是不同,但它们都是基于模块化设计思想的。
C++程序员通常将类的声明和定义用头文件来保存,而将方法的定义代码保存另外一个文件,一般来说,这两个文件的文件名是相同,只不过其扩展名一个是.h,一个是.cpp。编译后产生上述两个编译单元。由于编译器不能预见在其他模块中已定义的方法,因此链接时必然需要大量的工作。
在Object Pascal中,每一个源代码文件称为单元,也分成两个部分。一个是接口部分,另一个实现部分,并分别使用interface和implementation这两个关键字来标明。接口部分一般包括类的定义和方法的声明,而实现部分必须包括在接口中已声明方法的定义。用户可以使用uses语句将其他文件包含进来,例如:
uses
Windows, Form, MyFile;
在Java中,每个代码文件或是编辑单元都是独立分开的,用户可以将多个编辑单元定义成一个包。与其它两门语言不同的是,用户必须在声明类的时候就要把所有方法的代码写出来。当用import将一个文件包含进来时,编译器只使用定义成public的元素,而不是所有的代码。例如:
import where.myclass;
import where.* // all the classes
1 2 下一页 |