Java has generics and C++ provides a very strong programming model with templates. So then, what is the difference between C++ and Java generics?
Java has generics and C++ provides a very strong programming model with template s.
Share
Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.
Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.
Lost your password? Please enter your email address. You will receive a link and will create a new password via email.
Please briefly explain why you feel this question should be reported.
Please briefly explain why you feel this answer should be reported.
Please briefly explain why you feel this user should be reported.
There is a big difference between them. In C++ you don’t have to specify a class or an interface for the generic type. That’s why you can create truly generic functions and classes, with the caveat of a looser typing.
The method above adds two objects of the same type, and can be used for any type T that has the "+" operator available.
In Java you have to specify a type if you want to call methods on the objects passed, something like:
In C++ generic functions/classes can only be defined in headers, since the compiler generates different functions for different types (that it’s invoked with). So the compilation is slower. In Java the compilation doesn’t have a major penalty, but Java uses a technique called "erasure" where the generic type is erased at runtime, so at runtime Java is actually calling …
Nevertheless, Java’s generics help with type-safety.