在c++中,多重继承是一项很强的功能,但也是较难掌握的 在c++中,goto语句已经不被建议使用了,保留goto只是为了和c语法兼容在java中goto语句被完全抛弃了,与此同时,java又扩大了break语句和continue语句的功能,通过使用break和continue,程序流程被允许在多层循环中跳转 利用c/c++中提供的#define、#include等预处理指令,厉害的程序设计人员可以自己开发一套只有自己才看得懂的宏指令集从软件工程的角度上看,这对团队开发软件和整个软件的维护都是十分不利的同时,预编译后的程序代码和程序设计者看到的程序代码是不同的如果宏指令集有错,编译器产生的错误信息将不会c语言进程通信是编程人员所预期的,这增加了程序调试的难度 不再有预处理器(preprocessor)功能 取消了goto语句 操作符重载被看作是c++的一个特色在c++中,利用操作符重载,程序设计者通过对现有运算符赋予自己的定义,可以使程序看起来更为自然但是,如果使用不当,也会使整个程序的可读性大受影响同时,这一功能的存在也并非必要,程序设计者可以定义类中的方法来达到同样的目的 java编程语言中,取消了结构化语言中最重要的部分——函数在面向对象程序设计的概念里,对象的数据才是真正的主题,而处理对象数据的方法则必须依附在对象内才有意义因此函数概念完全是不必要的这强化了面向对象的开发策略 不再有函数(function)的概念 可学习韩语基础入门书以这样说,java编程语言是一种简洁而有效的纯面向对象的编程语言而c++语言因为要与c兼容(c++语言是作为c语言的一个超集被定义的),所以在面向对象的特性方面不如java好 不再有操作符重载(operator overloading) 不再有类的多重继承(multiple inheritance) java采用了c及c++的语法格式,对于学习过c及c++的程序设计者来说,学习java将有可能很轻松但是,如果仔细检查java语言的许多细节,就会发现java取消了不少c及c++的特性,并且加入了一些新的特性这些差异包括: 不再使用structure、union和typedef. 不再有指针(pointer)的概念 java日语入门学习软件提供了一种引用(reference)类型用来替代指针,通过引用去访问申请到的内存空间,可以确保不会访问不属于自己的内存空间,同时,程序的执行系统也可以动态地做内存垃圾回收工作,将那些被取消引用的内存空间回收给系统使用这种动态内存分配机制,通过牺牲一定的灵活性,保证了内存分配一定程度上的安全性取消多重继承降低了java语言的功能,但它使java看起来更为简洁同时,java也提供了接口(interface)的方式,可以实现部分多重继承的作用和多重继承的不同之处在于接口并不会定义类方法的内容,以及类中的数据 java是一种强类型检查的编程语言,对于诸如浮点型变量赋值给整型变量这样的情况而言,在c++的语法中是材料化学允许的,最多只是在编译时给出警告信息但是,在java中,除非写明强制类型转换,否则编译无法通过 事实上,在c++中就可以去掉c中的structure和union等对复杂数据的自定义结构类型了,因为类(class)的定义方式完全可以做到这项功能而typedef的功能也可以由类来实现虽然c++这样的设计是为了和c兼容,但是这些毕竟是多余的语言特点,在java语言中便被抛弃了 取消了自动类型转换 这是java和c/c++在语法上的主要区别之一在c及c++中,指针的灵活运用将会给程序设计带来极大的便利,但是其灵活性也成为了导致程序不稳定的一个主要因素配合c及c++的内存管理策略,编程人员必须亲自跟踪自己向系统申应用程序编程请到的内存,最后确认交还给系统并且在使用指针时,要随时注意是否超过合法的内存空间,造成segmentation fault或general protection fault这样的问题 北京白癜风价钱转载请注明原文网址:http://www.gzdatangtv.com/bcyyfz/470.html |