C++ Verständnisproblem: Precompiled headers & Benutzung von #include

L0g4n

Lieutenant
Registriert
Sep. 2013
Beiträge
533
Hallo,

ich habe hier eine Verständnisfrage zum Thema PCHS.
Also in meiner "stdafx.h" inkludiere ich beispielsweise iostream, vector und string, in der zugehörigen .cpp Datei inkludiere ich dann die .h Datei.
Wenn ich jetzt eine Headerdatei einer Klasse gestalte und in dem Code schreibe, der abhängig von einer dieser 3 Dateien ist, muss ich ja zwangsläufig die zugehörige Headerdatei inkludieren, da der Compiler sonst ja über fehlende Deklarationen meckert.
Jetzt ist die Frage, warum wird u.a. bei stackoverflow davon abgeraten , jetzt den PCH Header zu inkludieren (stdafx.h), die ja z.B. vector mit einschliesst, und dazu geraten jetzt z.B. vector mit #include <vector> zu inkludieren ?
Eigentlich kommt ja beide auf das selbe raus, oder ?

In dem Thread wird u.a. beschrieben, dass man in meine Fall z.B. vector ja gar nicht inkludieren müsse, da, wenn ich die zugehörige .cpp dazu gestalte, ja dort als erstes die PCH Headerdatei inkludiere und damit z.B. die Deklarationen von vector in der Headerdatei bekannt sind. Jedoch trifft das ja nur zu, wenn ich die Headerdatei irgendwo verwende, andernfalls wird ja vorher nicht "stdafx.h" inkludiert und somit sind die Deklarationen in der Headerdatei nicht bekannt.

Wie ihr seht, ich bin gerade ziemlich verwirrt, wann ich jetzt am besten inkludieren soll und was im Falle von PCHs.

Hoffe ihr könnt mir dabei helfen, bin nämlich durch die ganzen verschiedenen Aussagen ziemlich verwirrt.

LG
 
Wenn du die Header Datei nirgends verwendest, was ist dann der Sinn dieser Header Datei?

Ich kenne mich mit precompiled Headers auch nicht wirklich aus, aber solange du stdafx zuerst inkludierst und danach deine Header sollte alles richtig erkannt werden, wie du ja schon gesehen hast. Die Header Dateien werden soweit ich weiss ja nie kompiliert wenn sie nicht irgendwo included wurden.
 

Ähnliche Themen

Zurück
Oben