Header include Problem
-
Ich nutze bei VC die prekompilierten Header, welche in der stdafx.h gepackt werden, nun frage ich mich, ob da nun die Header, die ich selber erstelle auch reingehören oder nicht?
Ich muss ja in jeder Datei ein #include "stdafx.h" schreiben um externe Libraries nutzen zu können.
Folgendes geht nicht:
// stdafx.h #include "A.h" #include "B.h" #include <string> // usw // A.h include "stdafx.h" class A { public: A(); protected: B* b; };So hat A.h n include mit sich selbst, was zu merkwürdigen Fehlermeldungen führt.
Ist diese Nutzung falsch und eigene Header gehöhren nicht in die stdafx.h?
-
Wieso hast du zweimal denselben Thread aufgemacht?
http://c-plusplus.net/forum/viewtopic-var-p-is-1555021-and-highlight-is-.html#1555021
-
Sorry, ware keine Absicht, als ich das gestern geschrieben habe, hatte das Forum immer wieder aussetzer, so der das Thema nicht gesendet wurde und ich mehrmals durch ein Timeout den Text verloren habe
Daher musste ich öfter auf "Abbrechen" und nochmal auf "Abschicken" klicken, nach 10 Min gings dann, bekam aber ne Info, dass ein derartiger Thread bereits existiert, warum das System nun doch zwei hat, ist ne gute Frage
-
stdafx.h sollte nur verwendet werden, um den Kompiliervorgang zu beschleunigen, aber nicht um "weniger #includes schreiben zu müssen".
Generelle Regel: häufig verwendete Standard-Header (C/C++, OS, UI-Bibliotheken) in die stdafx.h rein. Eigene Header nicht!
wenn sich einer der Header in stdafx.h ändert, wird das ganze Projekt neu übersetzt, das dauert.
Für das von dir beschriebene Problem gibt es Include Guards bzw. auch #pragma once
-
Seikilos schrieb:
Sorry, ware keine Absicht, als ich das gestern geschrieben habe, hatte das Forum immer wieder aussetzer, so der das Thema nicht gesendet wurde und ich mehrmals durch ein Timeout den Text verloren habe
Daher musste ich öfter auf "Abbrechen" und nochmal auf "Abschicken" klicken, nach 10 Min gings dann, bekam aber ne Info, dass ein derartiger Thread bereits existiert, warum das System nun doch zwei hat, ist ne gute FrageHehe, ja, kleine Aussetzer gibts hier gelegentlich...
