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
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