<?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[Probleme mir mehrfach Includes und namespaces]]></title><description><![CDATA[<p>Ich habe folgendes Problem:<br />
Es exsitieren die Dateien...</p>
<p>a.h</p>
<pre><code class="language-cpp">#ifndef A_H
#define A_H

#include &lt;B.h&gt;

namespace asam { namespace mcd {
class A
{
   asam::d::B bar();
};

}}

#endif
</code></pre>
<p>a.cpp</p>
<pre><code class="language-cpp">#include &lt;a.h&gt;
</code></pre>
<p>b.h</p>
<pre><code class="language-cpp">#ifndef B_H
#define B_H

#include &lt;A.h&gt;

namespace asam {namespace d {

class B
{

};

}}
#endif
//namespace asam {namespace d {class B;}};
</code></pre>
<p>b.cpp</p>
<pre><code class="language-cpp">#include &lt;b.h&gt;
</code></pre>
<p>Bei diesem Beispiel meckert der Compiler bei der Deklaration der Funktion bar(), dass d kein element des namespaces asam sei. Erst durch hinzufügen der auskommentierten Zeile ist er zufrieden.</p>
<p>Das Beispiel funktioniert ebenfalls beim entfernen der *.cpp dateien aus dem projekt.</p>
<p>wo ist da das Problem.<br />
Nur zur Info: Arbeite mit dem C++ builder 6.<br />
Ich stufe das Problem aber bis jetzt als allgemein ein.</p>
<p>Für Antworten wäre ich sehr dankbar.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/200411/probleme-mir-mehrfach-includes-und-namespaces</link><generator>RSS for Node</generator><lastBuildDate>Sun, 04 Oct 2026 19:51:58 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/200411.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 14 Dec 2007 13:10:18 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Probleme mir mehrfach Includes und namespaces on Fri, 14 Dec 2007 13:10:18 GMT]]></title><description><![CDATA[<p>Ich habe folgendes Problem:<br />
Es exsitieren die Dateien...</p>
<p>a.h</p>
<pre><code class="language-cpp">#ifndef A_H
#define A_H

#include &lt;B.h&gt;

namespace asam { namespace mcd {
class A
{
   asam::d::B bar();
};

}}

#endif
</code></pre>
<p>a.cpp</p>
<pre><code class="language-cpp">#include &lt;a.h&gt;
</code></pre>
<p>b.h</p>
<pre><code class="language-cpp">#ifndef B_H
#define B_H

#include &lt;A.h&gt;

namespace asam {namespace d {

class B
{

};

}}
#endif
//namespace asam {namespace d {class B;}};
</code></pre>
<p>b.cpp</p>
<pre><code class="language-cpp">#include &lt;b.h&gt;
</code></pre>
<p>Bei diesem Beispiel meckert der Compiler bei der Deklaration der Funktion bar(), dass d kein element des namespaces asam sei. Erst durch hinzufügen der auskommentierten Zeile ist er zufrieden.</p>
<p>Das Beispiel funktioniert ebenfalls beim entfernen der *.cpp dateien aus dem projekt.</p>
<p>wo ist da das Problem.<br />
Nur zur Info: Arbeite mit dem C++ builder 6.<br />
Ich stufe das Problem aber bis jetzt als allgemein ein.</p>
<p>Für Antworten wäre ich sehr dankbar.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1420525</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1420525</guid><dc:creator><![CDATA[R0Y4LTS]]></dc:creator><pubDate>Fri, 14 Dec 2007 13:10:18 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme mir mehrfach Includes und namespaces on Fri, 14 Dec 2007 13:22:33 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>Das allgemeine Problem ist der Kreuzverweis zwischen zwei Headern. Wenn A.h den Header B.h und B.h wieder A.h included landet der Compiler in endlos-Schleifen. Die erste Lösung sind die Include-Guards, die du ja auch hast. Dadurch kommt es aber dann bei Kreuzbeziehungen zwischen den Elementen die in den Headern _implementiert_ sind wieder zu Konflikten, die du durch die Forward-Declaration gelöst hast.<br />
Die saubere Lösung ist aber keine Kreuzincludes zu erzeugen. Verlagere aus mindestens einem Header den Include auf den andern Header in die Implementationsdatei, und damit auch alle Implementierungen. Arbeite mit Forward Declarations.</p>
<p>bis bald<br />
akari</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1420535</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1420535</guid><dc:creator><![CDATA[akari]]></dc:creator><pubDate>Fri, 14 Dec 2007 13:22:33 GMT</pubDate></item></channel></rss>