<?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[#includes in der cpp]]></title><description><![CDATA[<p>Mich würde interessiert grade ob es zu Schnittstellen Problemen kommen kann wenn man seine .h in einer anderen .h included.<br />
Mir wurde das so erklärt das wenn ich:</p>
<pre><code>class A{
  void bla();
  void bla2();
}
</code></pre>
<pre><code>#include &quot;a.h&quot;
class B{
  blabla();
}
</code></pre>
<p>Nun soll gebaut und installiert werden und dann neu mit der unten stehenden A;<br />
Wenn ich nun class a abändere soll das zu Problemen führen! Kann sowas überhaupt passieren?<br />
Hinzufügen soll ok sein aber sowas nicht:</p>
<pre><code>class A{
  void bla();
}
</code></pre>
<p>Mir wurde das auch versucht zu demonstrieren was dann einen</p>
<pre><code>lookup error undefined symbol
</code></pre>
<p>fehler hervor gerufen hat.</p>
<p>Vielleicht könnt ihr mich da noch mal genauer aufklären.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/319632/includes-in-der-cpp</link><generator>RSS for Node</generator><lastBuildDate>Sat, 25 Jul 2026 04:10:32 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/319632.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 26 Aug 2013 15:06:02 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to #includes in der cpp on Mon, 26 Aug 2013 15:07:09 GMT]]></title><description><![CDATA[<p>Mich würde interessiert grade ob es zu Schnittstellen Problemen kommen kann wenn man seine .h in einer anderen .h included.<br />
Mir wurde das so erklärt das wenn ich:</p>
<pre><code>class A{
  void bla();
  void bla2();
}
</code></pre>
<pre><code>#include &quot;a.h&quot;
class B{
  blabla();
}
</code></pre>
<p>Nun soll gebaut und installiert werden und dann neu mit der unten stehenden A;<br />
Wenn ich nun class a abändere soll das zu Problemen führen! Kann sowas überhaupt passieren?<br />
Hinzufügen soll ok sein aber sowas nicht:</p>
<pre><code>class A{
  void bla();
}
</code></pre>
<p>Mir wurde das auch versucht zu demonstrieren was dann einen</p>
<pre><code>lookup error undefined symbol
</code></pre>
<p>fehler hervor gerufen hat.</p>
<p>Vielleicht könnt ihr mich da noch mal genauer aufklären.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2348629</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2348629</guid><dc:creator><![CDATA[Fuchs aus dem Wald]]></dc:creator><pubDate>Mon, 26 Aug 2013 15:07:09 GMT</pubDate></item><item><title><![CDATA[Reply to #includes in der cpp on Mon, 26 Aug 2013 15:36:47 GMT]]></title><description><![CDATA[<p>Kompletter Blödsinn. Vielleicht ist das Makefile oder das Äquivalent dazu in deiner IDE zu dumm um das zu merken, aber das ist kein Problem der Schnittstelle. Nach einem Rebuild funktionierts.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2348641</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2348641</guid><dc:creator><![CDATA[nwp3]]></dc:creator><pubDate>Mon, 26 Aug 2013 15:36:47 GMT</pubDate></item><item><title><![CDATA[Reply to #includes in der cpp on Mon, 26 Aug 2013 15:38:30 GMT]]></title><description><![CDATA[<p>Hä?</p>
<p>Jetzt mal ohne Spass, mein Textstil ist ja auch sehr gewöhnungsbedürftig. Aber du achtest hier gerade weder auf Zeichensetzung, noch gedankliche Pausen etc. Grammatik ist auch nicht so die Stärke von dem Post.</p>
<p>Bitte überarbeite die Fragestellung nochmals komplett.</p>
<p>Nachtrag: Inkludierst du einen header in einen anderen gibt das keinerlei Probleme. Auch wenn du Änderungen reinbringst gibt das keine Probleme, solange da keine Fehler durch erzeugt werden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2348642</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2348642</guid><dc:creator><![CDATA[Skym0sh0]]></dc:creator><pubDate>Mon, 26 Aug 2013 15:38:30 GMT</pubDate></item><item><title><![CDATA[Reply to #includes in der cpp on Mon, 26 Aug 2013 15:48:05 GMT]]></title><description><![CDATA[<p>Tut mir leid. Ich versuche es noch einmal.</p>
<p>Also mir wurde gesagt das ich meine includes mit &quot;lalala.h&quot;(also die mit &quot; &quot;) lieber in die .cpp schreiben soll, da es sonst bei Änderungen zu Problemen in der Header kommen kann.<br />
Ich hoffe so kann man das verstehen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2348649</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2348649</guid><dc:creator><![CDATA[Fuchs aus dem Wald]]></dc:creator><pubDate>Mon, 26 Aug 2013 15:48:05 GMT</pubDate></item><item><title><![CDATA[Reply to #includes in der cpp on Mon, 26 Aug 2013 16:34:28 GMT]]></title><description><![CDATA[<p>Aha, ok.</p>
<p>Da geb ich dir ein ganz klares Jain.</p>
<p>In den Header inkludierst du, was du inkludieren musst, damit Symbole auch deklariert sind. Bsp:</p>
<pre><code>// A.h
class A { /* ... */  };
</code></pre>
<pre><code>// B.h
#include &quot;A.h&quot;

class B
{
    A myA; // hierfür brauchst du A.h
};
</code></pre>
<p>Anders sieht das aus, wenn du kein Objekt speichern willst, sondern nur einen darauf:</p>
<pre><code>// A.h
class A { /* ... */  };
</code></pre>
<pre><code>// B.h

class A; // Forward Declaration

class B
{
    A * myA; // hierfür brauchst die Forward Declaration, aber du brauchst nicht die ganze Definition von A
};
</code></pre>
<p>(So umgeht man auch zyklische Abhängigkeiten, so sie denn auftreten!)</p>
<p>In die dazugehörigen Source-Dateien musst du in jedem Fall direkt (include x) oder indirekt (Andere Datei inkluden, wo die benötigte Datei schon inkludiert wurde) die benötigte Datei inkludieren.</p>
<p>Source Dateien included man nirgens hin (es sei denn du weisst, was du machst und du hast einen guten Grund).</p>
<p>Natürlich, je größer dein Projekt, je mehr Header Dateien die sich untereinander inkludieren, desto länger dauert das Compilen auch, logischerweise. Beispiel:</p>
<p>(die Pfeile &quot;a --&gt; b&quot; bedeuten, dass a in b inkludiert wird)</p>
<pre><code>A.h --&gt; B.h
A.h --&gt; C.h
C.h --&gt; D.h
D.h --&gt;main.cpp
</code></pre>
<p>Änderst du nun irgendetwas in A.h muss natürlich alles andere neu kompiliert werden (B.h, C.h, D.h, Main.cpp), sowie alle weiteren Dateien in denen eine dieser Dateien inkludiert wird.</p>
<p>Und das ist auch der Grund warum ich Jain sage. Man sollte nicht jeden Müll überall hin inkludieren. Und auch mit zyklischen Abhängigkeiten musst du aufpassen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2348652</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2348652</guid><dc:creator><![CDATA[Skym0sh0]]></dc:creator><pubDate>Mon, 26 Aug 2013 16:34:28 GMT</pubDate></item><item><title><![CDATA[Reply to #includes in der cpp on Tue, 27 Aug 2013 06:40:45 GMT]]></title><description><![CDATA[<p>Skym0sh0 schrieb:</p>
<blockquote>
<p>Anders sieht das aus, wenn du kein Objekt speichern willst, sondern nur einen ?Zeiger? darauf:</p>
<pre><code>// A.h
class A { /* ... */  };
</code></pre>
<pre><code>// B.h

class A; // Forward Declaration

class B
{
    A * myA; // hierfür brauchst die Forward Declaration, aber du brauchst nicht die ganze Definition von A
};
</code></pre>
<p>(So umgeht man auch zyklische Abhängigkeiten, so sie denn auftreten!)</p>
</blockquote>
<p>Wenn ich das richtig verstanden habe sollte man zyklische Abhängigkeiten vermeiden.<br />
Ansonsten so:</p>
<pre><code>class A{
  void lala();
}
</code></pre>
<pre><code>#include &quot;A.h&quot;

class B{
  A myA;
}
</code></pre>
<pre><code>class A;

class C{
  A* myA;
  void blaa();
}
</code></pre>
<pre><code>//C.cpp
#include &quot;A.h&quot; //ist das nun nötig?
#include &quot;B.h&quot;
void bla(){
  B* myB;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2348759</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2348759</guid><dc:creator><![CDATA[Fuchs aus dem Wald]]></dc:creator><pubDate>Tue, 27 Aug 2013 06:40:45 GMT</pubDate></item></channel></rss>