<?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[Dateien per include einbinden]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe drei Klassen: A,B und C. B und C sind jeweils von A abgeleitet. In A möchte ich nun einen Operator der ein Parameter vom Typ B entgegen nimmt.</p>
<p>Da die Klasse B weder in der A.cpp oder A.h eingebunden ist, habe ich in die A.h ganz oben ein #include &quot;B.h&quot; hingesetzt.</p>
<p>Leider gibt es nun für alles möglichen Mist Compilerfehler wo es sonst keinen Fehler gab.</p>
<p>Gibt es vielleicht eine goldene Regel wie etwas einzubinden ist?</p>
<p>Viele grüße<br />
MM</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/248969/dateien-per-include-einbinden</link><generator>RSS for Node</generator><lastBuildDate>Wed, 16 Sep 2026 18:11:26 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/248969.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 01 Sep 2009 06:27:12 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Dateien per include einbinden on Tue, 01 Sep 2009 06:27:12 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe drei Klassen: A,B und C. B und C sind jeweils von A abgeleitet. In A möchte ich nun einen Operator der ein Parameter vom Typ B entgegen nimmt.</p>
<p>Da die Klasse B weder in der A.cpp oder A.h eingebunden ist, habe ich in die A.h ganz oben ein #include &quot;B.h&quot; hingesetzt.</p>
<p>Leider gibt es nun für alles möglichen Mist Compilerfehler wo es sonst keinen Fehler gab.</p>
<p>Gibt es vielleicht eine goldene Regel wie etwas einzubinden ist?</p>
<p>Viele grüße<br />
MM</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1770106</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1770106</guid><dc:creator><![CDATA[MrMilk]]></dc:creator><pubDate>Tue, 01 Sep 2009 06:27:12 GMT</pubDate></item><item><title><![CDATA[Reply to Dateien per include einbinden on Tue, 01 Sep 2009 06:32:38 GMT]]></title><description><![CDATA[<p>Hast du in deinen Header Dateien Include Guards?</p>
<pre><code class="language-cpp">#ifndef KLASSEA_H
#define KLASSEA_H

//...Code

#endif
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1770107</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1770107</guid><dc:creator><![CDATA[Neo Gandar]]></dc:creator><pubDate>Tue, 01 Sep 2009 06:32:38 GMT</pubDate></item><item><title><![CDATA[Reply to Dateien per include einbinden on Tue, 01 Sep 2009 06:33:28 GMT]]></title><description><![CDATA[<p>habe ich</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1770108</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1770108</guid><dc:creator><![CDATA[MrMilk]]></dc:creator><pubDate>Tue, 01 Sep 2009 06:33:28 GMT</pubDate></item><item><title><![CDATA[Reply to Dateien per include einbinden on Tue, 01 Sep 2009 06:38:17 GMT]]></title><description><![CDATA[<p>Glaube das ging mit Forward Declaration.</p>
<p>Also in deiner A.h schreibst du vor deiner Klasse die Deklaration für die Klasse B. Jedoch ohne die Header Datei von B zu includieren.</p>
<pre><code class="language-cpp">class B;

class A{

//...

};
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1770111</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1770111</guid><dc:creator><![CDATA[Neo Gandar]]></dc:creator><pubDate>Tue, 01 Sep 2009 06:38:17 GMT</pubDate></item><item><title><![CDATA[Reply to Dateien per include einbinden on Tue, 01 Sep 2009 06:41:50 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>dann musst du die Klasse B im A-Header schon mal angeben (Forward Deklaration):</p>
<pre><code class="language-cpp">#ifndef KLASSEA_H
#define KLASSEA_H

#include &quot;B.h&quot;

class B;

class A {
...
A operator=(B &amp;b);
...
}

#endif //KLASSEA_H
</code></pre>
<p>Gruß Simon</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1770112</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1770112</guid><dc:creator><![CDATA[varginator]]></dc:creator><pubDate>Tue, 01 Sep 2009 06:41:50 GMT</pubDate></item><item><title><![CDATA[Reply to Dateien per include einbinden on Tue, 01 Sep 2009 06:51:54 GMT]]></title><description><![CDATA[<p>Hey,</p>
<p>vielen Dank für die Tipps.</p>
<p>Beim mir sind A und B auch noch Klassentemplates, muss ich die Templates dann auch davor setzten? Und was ist mit der Vererbung, wird einfach nur</p>
<pre><code class="language-cpp">class B;
</code></pre>
<p>geschrieben oder</p>
<pre><code class="language-cpp">class B:public A;
</code></pre>
<p>Viele Grüße<br />
MM</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1770115</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1770115</guid><dc:creator><![CDATA[MrMilk]]></dc:creator><pubDate>Tue, 01 Sep 2009 06:51:54 GMT</pubDate></item><item><title><![CDATA[Reply to Dateien per include einbinden on Tue, 01 Sep 2009 07:24:12 GMT]]></title><description><![CDATA[<p>Nein, eine Deklaration besteht nur aus dem Schlüsselwort class (oder struct, ist in dem Fall egal) sowie dem Namen. Vererbung gehört bereits zur Definition. Poste doch mal die wesentlichen Grundgerüste der Klassen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1770125</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1770125</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Tue, 01 Sep 2009 07:24:12 GMT</pubDate></item><item><title><![CDATA[Reply to Dateien per include einbinden on Tue, 01 Sep 2009 07:52:15 GMT]]></title><description><![CDATA[<p>Tata <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="🙂"
    /></p>
<pre><code class="language-cpp">template
&lt;
    int i,
    int j,
    class c

&gt;
class A
{
    //...
}
</code></pre>
<pre><code class="language-cpp">template
&lt;
    int i,
    class c

&gt;
class B: public A&lt;i,i,c&gt;
{
    //...
}
</code></pre>
<p>Viele Grüße<br />
MM</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1770136</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1770136</guid><dc:creator><![CDATA[MrMilk]]></dc:creator><pubDate>Tue, 01 Sep 2009 07:52:15 GMT</pubDate></item><item><title><![CDATA[Reply to Dateien per include einbinden on Tue, 01 Sep 2009 08:01:47 GMT]]></title><description><![CDATA[<p>In diesem Fall musst Du vor der Definition von B die A.h includen, da bei der Ableitung die Klasse bzw. das Template bekannt sein muss. Vor der Definition von A, welche den Operator deklariert (nicht _definiert_!), musst Du B bekanntmachen:</p>
<pre><code class="language-cpp">template&lt; int i, class c &gt; class B;
</code></pre>
<p>Bevor Du den Operator nun definieren kannst, musst Du B.h includen. Das muss alles unterhalb der Klasse A passieren.</p>
<pre><code class="language-cpp">// B.h
#include &quot;A.h&quot;

template&lt; int i, class c &gt;
class B : public A&lt; i, i, c &gt;
{
};

// A.h

template&lt; int i, class c &gt; class B;

template&lt; int i, int j, class c &gt;
class A
{
    A operator+( B&lt; ??? &gt; const&amp; b );
};

#include &quot;B.h&quot;

template&lt; int i, int j, class c &gt;
A&lt; i, j, c &gt; A&lt; i, j, c &gt;::operator+( B&lt; ??? &gt; const&amp; b )
{
}
</code></pre>
<p>Natürlich MIT Includeguards, das ganze.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1770148</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1770148</guid><dc:creator><![CDATA[LordJaxom]]></dc:creator><pubDate>Tue, 01 Sep 2009 08:01:47 GMT</pubDate></item><item><title><![CDATA[Reply to Dateien per include einbinden on Tue, 01 Sep 2009 08:29:18 GMT]]></title><description><![CDATA[<p>LordJaxom schrieb:</p>
<blockquote>
<p>In diesem Fall musst Du vor der Definition von B die A.h includen, da bei der Ableitung die Klasse bzw. das Template bekannt sein muss.</p>
</blockquote>
<p>Nicht wenn A&lt;i,i,c&gt;wie hier eine abhängige Basis íst. Eine Vorwärtsdekläaration für A genügt dann zunächst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1770156</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1770156</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Tue, 01 Sep 2009 08:29:18 GMT</pubDate></item><item><title><![CDATA[Reply to Dateien per include einbinden on Tue, 01 Sep 2009 08:47:55 GMT]]></title><description><![CDATA[<p>Gut zu wissen, wieder was gelernt <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="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1770161</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1770161</guid><dc:creator><![CDATA[LordJaxom]]></dc:creator><pubDate>Tue, 01 Sep 2009 08:47:55 GMT</pubDate></item><item><title><![CDATA[Reply to Dateien per include einbinden on Tue, 01 Sep 2009 09:12:40 GMT]]></title><description><![CDATA[<blockquote>
<p>Gibt es vielleicht eine goldene Regel wie etwas einzubinden ist?</p>
</blockquote>
<p>Ich denke, man kann Dir <em>viel</em> besser helfen, wenn Du sagst, <em>was</em> Du für ein Problem lösen willst und nicht <em>wie</em>. Dein <em>wie</em>-Ansatz kann man wahrscheinlich durch etwas eleganteres ersetzen.</p>
<p>Gruß,<br />
SP</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1770170</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1770170</guid><dc:creator><![CDATA[Sebastian Pizer]]></dc:creator><pubDate>Tue, 01 Sep 2009 09:12:40 GMT</pubDate></item></channel></rss>