Possible Duplicate:
In C++ why have header files and cpp files?
Coming from a C# background, I find header files really annoying. Are they necessary even with C++11?
Possible Duplicate:
In C++ why have header files and cpp files?
Coming from a C# background, I find header files really annoying. Are they necessary even with C++11?
C++ needs header files (and libs too) just like C# needs reference assemblies.
Yes, because it's still based on C. You can answer your own question: Don't use them and try to compile without them. If you can't, then the compilers still require them.
I don't mean that as a tautology. If the language spec still calls for them, and the compilers match the spec, then it'd be a massive effort to change. And the debate would take a very long time. This sounds like a question that is meant for little more than venting and debate with no real end.
Yes they are. Assume you want to develop a DLL or SO. How should a developer know which functions this library offers? He needs therefore prototypes called API to include into custom projects. This way one splits up declaration and implementation. You declare which functions are available but you can always change the internal code.