<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[wohin mit den #include Anweisungen?]]></title><description><![CDATA[<p>Hallo,</p>
<p>kann man pauschal sagen, ob die #include Anweisungen zum einbinden anderer Header in die .cpp oder in die .h gehören?</p>
<p>Dachte bisher immer, includiert wird in der .cpp, habe aber gerade etwas Ärger damit:</p>
<p>jede .cpp und .h Datei kapselt eine einfache Klasse!</p>
<p>in A.cpp includiere ich B.h.<br />
in B.cpp wird wiederum C.h includiert.</p>
<p>da ich nun jedoch im header von B bereits Klasse C in Deklarationen verwende, jedoch im Header von B die Klasse C natürlich nicht includiere, scheitert das Kompilieren von A.cpp, obwohl sich B.cpp selbst compilieren lässt.</p>
<p>sollte ich includes lieber in die Header schreiben? wenn ja, alle? oder nur einen Teil?<br />
bin etwas verwirrt!</p>
<p>Habt dank,<br />
Wurfholz</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/194628/wohin-mit-den-include-anweisungen</link><generator>RSS for Node</generator><lastBuildDate>Tue, 29 Sep 2026 14:54:54 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/194628.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 09 Oct 2007 08:43:36 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to wohin mit den #include Anweisungen? on Tue, 09 Oct 2007 08:43:36 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>kann man pauschal sagen, ob die #include Anweisungen zum einbinden anderer Header in die .cpp oder in die .h gehören?</p>
<p>Dachte bisher immer, includiert wird in der .cpp, habe aber gerade etwas Ärger damit:</p>
<p>jede .cpp und .h Datei kapselt eine einfache Klasse!</p>
<p>in A.cpp includiere ich B.h.<br />
in B.cpp wird wiederum C.h includiert.</p>
<p>da ich nun jedoch im header von B bereits Klasse C in Deklarationen verwende, jedoch im Header von B die Klasse C natürlich nicht includiere, scheitert das Kompilieren von A.cpp, obwohl sich B.cpp selbst compilieren lässt.</p>
<p>sollte ich includes lieber in die Header schreiben? wenn ja, alle? oder nur einen Teil?<br />
bin etwas verwirrt!</p>
<p>Habt dank,<br />
Wurfholz</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1381028</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1381028</guid><dc:creator><![CDATA[wurfholz]]></dc:creator><pubDate>Tue, 09 Oct 2007 08:43:36 GMT</pubDate></item><item><title><![CDATA[Reply to wohin mit den #include Anweisungen? on Tue, 09 Oct 2007 08:50:03 GMT]]></title><description><![CDATA[<p>Ich halte es immer so: Die Includes, die die Header-Datei wirklich braucht, schreibe ich auch rein. Wenn ich eine Klassendefinition in A.h habe, sollte A.cpp mit dem alleinigen Include von A.h kompilieren <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /> (edit: Ohne weiteren Quelltext, nur dieses Include; für die Implementation der Funktionen braucht man u.U. ja noch weitere Header)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1381034</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1381034</guid><dc:creator><![CDATA[Badestrand]]></dc:creator><pubDate>Tue, 09 Oct 2007 08:50:03 GMT</pubDate></item><item><title><![CDATA[Reply to wohin mit den #include Anweisungen? on Tue, 09 Oct 2007 08:48:21 GMT]]></title><description><![CDATA[<p>Wenn Du in der B.h nur Referenzen/Pointer auf C Objekte hast, dann reicht eine Vorwärtsdeklaration:</p>
<pre><code class="language-cpp">class C; // Vorwärtsdeklaration

class B
{
public:
    B(C&amp; ref);
    void do_something(const C* p);
private:
   C&amp; theCObject;
};
</code></pre>
<p>Ansonsten musst Du in B.h die C.h inkludieren</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1381035</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1381035</guid><dc:creator><![CDATA[~Airdamn]]></dc:creator><pubDate>Tue, 09 Oct 2007 08:48:21 GMT</pubDate></item><item><title><![CDATA[Reply to wohin mit den #include Anweisungen? on Tue, 09 Oct 2007 08:50:12 GMT]]></title><description><![CDATA[<p>Das kommt immer auf die Situation drauf an. In deinem Fall würde ich diese in den Header schreiben, ja.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1381037</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1381037</guid><dc:creator><![CDATA[Fake oder Echt]]></dc:creator><pubDate>Tue, 09 Oct 2007 08:50:12 GMT</pubDate></item><item><title><![CDATA[Reply to wohin mit den #include Anweisungen? on Tue, 09 Oct 2007 08:54:11 GMT]]></title><description><![CDATA[<p>Kurzfassung: Bind die Header dort ein, wo sie gebraucht werden. Wenn die Definition der Klasse A (in der &quot;A.h&quot;) auf der Klasse B aufbaut, gehört das #include in den Header (gelegentlich reicht eine Forward-Deklaration aus), wenn B nur intern von A verwendet wird, gehört's in die A.cpp.</p>
<p>(oder anders: Inkludiere so, daß für einen Anwender (Hauptprogramm o.ä.) ein '#include &quot;a.h&quot;' ausreicht, um deine Klasse verwenden zu können)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1381040</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1381040</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Tue, 09 Oct 2007 08:54:11 GMT</pubDate></item><item><title><![CDATA[Reply to wohin mit den #include Anweisungen? on Tue, 09 Oct 2007 08:54:54 GMT]]></title><description><![CDATA[<p>Das Includieren von Header-Dateien sollte soweit möglich in den Cpp-Dateien erfolgen.</p>
<p>Es kommt allerdings nicht selten vor das eine Header-Datei von anderen abhängig ist. In dem Fall ist es besser diese im Header einzubinden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1381043</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1381043</guid><dc:creator><![CDATA[MathiasTemp]]></dc:creator><pubDate>Tue, 09 Oct 2007 08:54:54 GMT</pubDate></item><item><title><![CDATA[Reply to wohin mit den #include Anweisungen? on Tue, 09 Oct 2007 09:34:25 GMT]]></title><description><![CDATA[<p>Vielen Dank</p>
<p>Ich kannte die forwärts Deklarationen noch aus C, habe aber vergessen, dass ich auch Klassen forwärts Deklarieren kann.</p>
<p>Jetzt läufts!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1381077</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1381077</guid><dc:creator><![CDATA[wurfholz]]></dc:creator><pubDate>Tue, 09 Oct 2007 09:34:25 GMT</pubDate></item><item><title><![CDATA[Reply to wohin mit den #include Anweisungen? on Tue, 09 Oct 2007 11:38:55 GMT]]></title><description><![CDATA[<p>Ein Musterbeispiel, wie man aus einem Include-Horror eine saubere Aufteilung der Header udn Source-Dateien bekommt findet sich unter <a href="http://www.gotw.ca/gotw/007.htm" rel="nofollow">http://www.gotw.ca/gotw/007.htm</a> . Doch recht lohnenswert in meinen Augen...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1381184</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1381184</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Tue, 09 Oct 2007 11:38:55 GMT</pubDate></item></channel></rss>