平常工作中会用到C++和Java, 这里列出一些C++与Java 的主要不同,以加深对这两种语言的理解。
1. 变量的定义
C++中任何类型的变量都可以用下面的形式定义:
ClassA a;但在java中只有,内部类型可以这样定义。类必须用new操作生成reference.
由此,Java中特有value type和reference type的区别
Java中,内置类型不需要用new操作符来定义,这就是value type。 而reference type 需要用new操作符来定义:
int i = 5;
ClassA a = new ClassA(5);C++中所有的类型一视同仁。没有这样的区别。
2.类对象的共有基类
Java中有一个缺省的Object基类,C++中的类没有这样的共有缺省基类。
3.Java 中有Interface类
C++中不存在Interface关键字,Java中的interface相当于C++中的全部函数都是纯虚的类。 如果一个类要实现一个interface使用implements
4.Java中存在super/extends关键字
如果调用父类的方法,C++中直接通过::操作符来调用基类的函数。而java是通过Super关键字来调用。
通过extends来继承父类。
5.C++支持多重继承,Java不支持
6.指针与reference
C++中有指针。Java中有reference,但是与指针的概念不同。
C++中的引用由&申明,必须被初始化也就是必须不能为NULL。
7.const与final的不同
C++中,const 函数不能改写类的成员变量,const对象指针只能调用const函数。const变量在也不能被赋值。但是Java中final只保护变量不能被重新赋值。
8. C++中有特有的namespace的定义,java中没有。
Java 中采用了类似的package包的概念。
9. C++中访问控制public,private和protect 是以类为界的。而Java中不同,package内是可以互相以public访问的,不管private还是protect.
10. Java 中有垃圾回收机制,而C++中没有
11. C++ 中有预处理机制,java中没有
C++中可以处理
#include "xxx.h"
#define ABC 123
#undef ABC
#if ..
...
#else
...
#error
#endif
12. C++中可以有static 函数和变量,Java中没有,并且所有的变量和函数必须定义在类中。
13. C++中有特有的运算符重载
未完待续...
本文对比了C++和Java在变量定义、类对象基类、接口、关键字、继承、指针与引用等方面的差异,帮助读者更好地理解两种语言的特点。
4606

被折叠的 条评论
为什么被折叠?



