PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : C++ Grundsätzliches zu Headerfiles


mekakic
2009-09-01, 11:11:12
Ich sehne mich schon länger nach einem durchdachten Vorgehen für den Umgang mit Headerfiles. Meistens funktioniert es irgendwie, aber man sieht immer sehr unterschiedliche Vorgehen und ohne konkretes Vorgehen habe ich am Ende immer hunderte Headerfiles die Kreuz und quer inkludiert werden müssen damit "es funktioniert".

Ich habe einige Frage, wo ich nicht weiß ob das eine oder andere Vorgehen einen Vorteil hat oder ob das am Ende egal ist:

Was kommt alles in ein Standard-Include Files wie "StdAfx.h"? Kommen da nur Standbibliotheken und/oder andere middleware rein?
Wo Inkludiere ich StdAfx.h? Nur in der Implementierung (cpp) oder auch im Header?
Wenn es nur in das CPP File kommt (wie man häufig sieht) und ich dann wieder Abhängigkeiten aus der StdAfx.h nicht erst in der Implementierung, sondern schon in der Header-Definition (.h) brauche. Inkludiere ich das StdAfx.h File dann auch im Header/nur im Header/oder inkludiere ich die fraglichen Abhängigkeiten manuell in den Header?
Wird in der cpp-Datei erst StdAfx.h inkludiert oder erst das zugehörige Definitions-Header File?
Inkludiert man erst Projektabhängikeiten, dann Middleware Abhängigkeiten und dann evtl. weitere STL Includes? Oder macht eine andere oder überhaupt eine Reihenfolge Sinn?
Verwendet man zum Inkludieren der STL nur #include <> und sonst immer #include "". Oder verwendet man #include "" nur für Projektabhängigkeiten und #include <> für alle externe Middleware?


In allen Fällen funktioniert alles irgendwie. Ich frage mich wie man es vernünftig macht und wieso? Bzw. ob es eine Art Vorgehensmodell für diese Inkludierungen, damit einem das ganze wenigstens etwas organisierter vorkommt. :)

kloffy
2009-09-01, 13:55:37
Hab mir vor kurzem ähnliche Fragen gestellt und auf Stack Overflow (http://stackoverflow.com) gute Antworten gefunden.

Is there a standard #include convention for C++? (http://stackoverflow.com/questions/691079/is-there-a-standard-include-convention-for-c)
C++ #include semantics (http://stackoverflow.com/questions/179213/c-include-semantics)

Zum Thema Precompiled Header (stdafx.h) gibt's da auch eine Menge, außerdem fand ich den Artikel The Care and Feeding of Pre-Compiled Headers (http://gamesfromwithin.com/the-care-and-feeding-of-pre-compiled-headers) nicht schlecht.