C++ promotes a separation between class definitions and class implementations but not JAVA [closed]

StackOverflow https://stackoverflow.com/questions/8054058

  •  24-02-2021
  •  | 
  •  

Question

I have a homework and I need to evaluate which approach is better according to GRASP.

I found this link that answers part of my questioning: Why have header files and .cpp files in C++?

However, what I want to know is how much c++ way of working is better for extensibility and for code reuse than JAVA because everything is defined in a conjoint file ?

Thanks for the help !

Edit: Just to make sure that this is not a debate, I want to know why does JAVA does not do like in C and promotes the separation between class definitions and class implementations. Are there any advantages with that way of working or proceding ?

This question was moved to https://softwareengineering.stackexchange.com/questions/118574/does-java-promote-a-separation-between-class-definitions-and-implementations-as

Was it helpful?

Solution

the equivalent in java is that you declare class interfaces that does serve the purpose of a implementation-less declaration. The binding of the implementation to the interface does happen at runtime

in the sense of extensibility both are entirely equivalent. The differences between both languages do not lie in the extensibility capabilities themselves, but in their performance approaches. Java and C# are more uniform in their syntax and more terse, while certain C++ can be a pain to read for the beginner. C++ has extensive focus in compile-time type binding through templates, while java and C# have traditionally more focus on run-time binding and reflection. This difference has softened in the last years, although for some application domain niches (mainly high performance computing) nice language features like garbage collection are still a high barrier of entry for the likes of Java and C#

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top