> a) Was präzise sind für Dich "self contained" Headerdateien?
Wenn ich ein #include <meinheader.h> ohne ein anderes vorheriges
#include mache, sollten keine Fehlermeldungen auftreten, die dadurch
kommen, daß der Header einen anderen Header benötigt. Er sollte ein
dazu evtl. nötiges #include selbst enthalten.
Wenn ich jetzt z.B. die Header a.h und b.h habe, die beide den Header
c.h benötigen, dann wird c.h automatisch doppelt enthalten sein, wenn
ich irgendwo ein
#include "a.h"
#include "b.h"
stehen habe. Da die Vermeidung der Mehrfacheinbindung über
Iclude-Guards aber trivial ist, ist das ja kein Problem. Gute Editoren
fügen die Include-Guards eh entweder automatisch oder per Knopfdruck
ein.
> b) warum sollte man die Deiner Ansicht nach verwenden?
Weil es verlorene Zeit ist, jeden Header zu durchsuchen, um
rauszubekommen, welche anderen Header der noch vorher benötigen könnte,
und weil es auch unnötiger Mehraufwand ist, sich drum kümmern zu müssen,
daß alle Header in genau der richtigen Reihenfolge eingebunden werden.