- Die #include-Direktive unterscheidet nicht zwischen verschiedenen Dateitypen (es handelt sich lediglich um einen glorifizierten Copy-Paste-Vorgang) - es findet kein automatisches Hinzufügen von .h statt.
- C++-Standard-Header-Dateien werden ohne die Erweiterung .h bereitgestellt
- Manchmal werden vom Hersteller abwärtskompatible Header-Dateien mit demselben Namen und der Erweiterung .h bereitgestellt
Das hat alles mit Namensräumen zu tun. Die .h-Gegenstücke für C++-Standard-Header enthalten normalerweise #includes des richtigen C++-Standard-Headers (ohne .h-Erweiterung) und geben dann eine Reihe von using aus (etwa so):
DATEI: iostream.h
#include <iostream>
using std::iostream;
using std::ostream;
using std::ios;
...
während die Headerdatei ohne die Erweiterung .h den Namensraum nicht mit allen definierten Klassen und Typen verschmutzt.