<?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[Include-Problem bei voneinander abhängigen Headern]]></title><description><![CDATA[<p>Hallo,<br />
mein Problem besteht darin, dass die einzelnen Header voneinander abhängen und somit kann nicht kompiliert werden:</p>
<p>Hier exemplarisch nur zwei voneinander abhängige Dateien, in Wirklichkeit sind es mehrere.<br />
main.h (Hauptheader der Lib, inkludiert alle anderen Header)</p>
<pre><code class="language-cpp">#pragma once

#include &lt;runtime.h&gt; // Wird auch von a.h und b.h benötigt!
#include &lt;a.h&gt;
#include &lt;b.h&gt;
</code></pre>
<p>a.h:</p>
<pre><code class="language-cpp">#pragma once

#include &lt;main.h&gt;

class a
{
//
};
void func(a vA, b vB);
</code></pre>
<p>b.h:</p>
<pre><code class="language-cpp">#pragma once

#include &lt;main.h&gt;

class b
{
a InstanceOfA;
//
};
</code></pre>
<p>MfG,<br />
Max</p>
<p>Ps: Ich hoffe mir wird das #pragma once verziehen...</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/223955/include-problem-bei-voneinander-abhängigen-headern</link><generator>RSS for Node</generator><lastBuildDate>Sat, 03 Oct 2026 12:53:22 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/223955.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 03 Oct 2008 09:10:05 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Include-Problem bei voneinander abhängigen Headern on Fri, 03 Oct 2008 09:10:05 GMT]]></title><description><![CDATA[<p>Hallo,<br />
mein Problem besteht darin, dass die einzelnen Header voneinander abhängen und somit kann nicht kompiliert werden:</p>
<p>Hier exemplarisch nur zwei voneinander abhängige Dateien, in Wirklichkeit sind es mehrere.<br />
main.h (Hauptheader der Lib, inkludiert alle anderen Header)</p>
<pre><code class="language-cpp">#pragma once

#include &lt;runtime.h&gt; // Wird auch von a.h und b.h benötigt!
#include &lt;a.h&gt;
#include &lt;b.h&gt;
</code></pre>
<p>a.h:</p>
<pre><code class="language-cpp">#pragma once

#include &lt;main.h&gt;

class a
{
//
};
void func(a vA, b vB);
</code></pre>
<p>b.h:</p>
<pre><code class="language-cpp">#pragma once

#include &lt;main.h&gt;

class b
{
a InstanceOfA;
//
};
</code></pre>
<p>MfG,<br />
Max</p>
<p>Ps: Ich hoffe mir wird das #pragma once verziehen...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1592786</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1592786</guid><dc:creator><![CDATA[ripmav]]></dc:creator><pubDate>Fri, 03 Oct 2008 09:10:05 GMT</pubDate></item><item><title><![CDATA[Reply to Include-Problem bei voneinander abhängigen Headern on Fri, 03 Oct 2008 09:18:00 GMT]]></title><description><![CDATA[<p>stichwort forward declaration...</p>
<p>danns chreibst in main.h einfahc vorher noch class a; und class b;</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1592793</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1592793</guid><dc:creator><![CDATA[Skym0sh0]]></dc:creator><pubDate>Fri, 03 Oct 2008 09:18:00 GMT</pubDate></item><item><title><![CDATA[Reply to Include-Problem bei voneinander abhängigen Headern on Fri, 03 Oct 2008 11:37:20 GMT]]></title><description><![CDATA[<p>Also erstmal solltest du runtime.h sowohl in a.h, als auch in b.h includen, wenn es von beiden gebraucht wird. Sonst muss ein Benutzer ja immer daran denken, vor a.h und/oder b.h runtime.h einzubinden.</p>
<p>Statt/zusätzlich zu dem pragma once wären include guards nicht schlecht.</p>
<p>Und in deiner konkreten Situation kannst du dein Problem auch nicht durch forward deklarationen lösen, weil für die Deklaration von Funktionsparameter (wenn per value übernommen wird) die Definition der Klasse bekannt sein muss, genau wie auch für die Deklaration von Member von Klassen.</p>
<p>Du kannst das Problem mit forward deklarationen lösen, wenn du func die Argummente per (const) reference übernehmen lässt, was sowieso sinnvoll ist, je nachdem, wie groß deine Klassen sind.</p>
<p>Felix</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1592872</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1592872</guid><dc:creator><![CDATA[Phoemuex]]></dc:creator><pubDate>Fri, 03 Oct 2008 11:37:20 GMT</pubDate></item></channel></rss>