java.lang.Object
). On the contrary, in C++ there is no such root hierarchy. C++ supports both procedural and object oriented programming; therefore, it is called a hybrid language.
Java
|
Java
does not support pointers, templates, unions, operator overloading,
structures etc.
The
Java language promoters initially said “No pointers!”, but when many
programmers questioned how you can work without pointers, the promoters began
saying “Restricted pointers.” Java supports what it calls “references”.
References act a lot like pointers in C++ languages but you cannot perform
arithmetic on pointers in Java. References have types, and they’re type-safe.
These references cannot be interpreted as raw address and unsafe conversion
is not allowed.
|
Java
support automatic garbage collection. It does not support destructors as C++
does.
|
Java
does not support conditional compilation and inclusion.
|
Java
has built in support for threads. In Java, there is a Thread class
that you inherit to create a new thread and override
the run() method.
|
Java
does not support default arguments. There is no scope resolution operator
(::) in Java. The method definitions must always occur within a class, so
there is no need for scope resolution there either.
|
There
is no goto statement in
Java. The keywords const and goto are reserved, even
though they are not used.
|
Java
doesn’t provide multiple inheritance, at least not in the same sense that C++
does.
|
Exception
handling in Java is different because there are no destructors. Also, in
Java, try/catch must be defined if the function declares that it may throw an
exception.
|
Java
has method overloading, but no operator overloading. The Stringclass
does use the + and += operators to concatenate strings
and Stringexpressions use automatic type conversion, but that’s a
special built-in case.
|
Java
has built-in support for documentation comments (/** ... */); therefore, Java
source files can contain their own documentation, which is read by a separate
tool usually javadoc and reformatted into HTML. This helps keeping
documentation maintained in easy way.
|
Java
is interpreted for the most part and hence platform independent.
|
C++
C++
supports structures, unions, templates, operator overloading, pointers and
pointer arithmetic.
|
C++
support destructors, which is automatically invoked when the object is
destroyed.
|
Conditional
inclusion (#ifdef #ifndef type) is one of the main features of C++.
|
C++
has no built in support for threads. C++ relies on non-standard third-party
libraries for thread support.
|
C++
supports default arguments. C++ has scope resolution operator (::) which is
used to to define a method outside a class and to access a global variable
within from the scope where a local variable also exists with the same name.
|
C++
has goto statement. However,
it is not considered good practice to use of goto statement.
|
C++
does support multiple inheritance. The keyword virtualis used to resolve
ambiguities during multiple inheritance if there is any.
|
While
in C++, you may not include the try/catch even if the function throws an
exception.
|
C++
supports both method overloading and operator overloading.
|
C++
does not support documentation comments.
|
C++
generates object code and the same code may not run on different platforms.
|
Take your time to comment on this article.