Sunday, February 13, 2011

What Java Has Removed from C++...?




  • Java does not include structures or unions. These were felt to be redundant since the 
    class encompasses them.

  • Java does not support operator overloading. Operator overloading is sometimes a 
    source of ambiguity in a C++ program, and the Java design team felt that it causes 
    more trouble than benefit.

  • Java does not include a preprocessor nor does it support the preprocessor directives. 
    The preprocessor plays a less important role in C++ than it does in C. The designers 
    of Java felt that it was time to eliminate it entirely.

  • Java does not perform any automatic type conversions that result in a loss of 
    precision. For example, a conversion from long integer to integer must be explicitly 
    cast.

  • All the code in a Java program is encapsulated within one or more classes. Therefore, 
    Java does not have what you normally think of as global variables or global functions.

  • Java does not allow default arguments. In C++, you may specify a value that a 
    parameter will have when there is no argument corresponding to that parameter when 
    the function is invoked. This is not allowed in Java.

  • Java does not support the inheritance of multiple superclasses by a subclass.

  • Although Java supports constructors, it does not have destructors. It does, however, 
    add the finalize( ) function.

  • Java does not support typedef.

  • It is not possible to declare unsigned integers in Java.

  • Java does not allow the goto.

  • Java does not have the delete operator.

  • The << and >> in Java are not overloaded for I/O operations.

  • In Java, objects are passed by reference only. In C++, objects may be passed by 
    value or by reference.

  • No comments:

    Post a Comment