<?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[Problem: Zugriff auf member funktion durch funktion in anderem Header]]></title><description><![CDATA[<p>Hi Leute,</p>
<p>ich arbeite gerade an einen Schiffe versenken(Console). Und ich versuche den Rat vom Pumukl so gut wie möglich einzuhalten und alles möglichst modular zu halten.<br />
Also hier mein problem:</p>
<p>Ich habe in meiner Header-Datei eine Klasse definiert:</p>
<p>&quot;class.h&quot;</p>
<pre><code class="language-cpp">#include &quot;function.h&quot;
class Test{
public:
  //memberfunction
  void func();
private:
  //members  
};
</code></pre>
<p>jetzt habe ich einen Funktion die so ähnlich ausschaut:<br />
&quot;function.h&quot;</p>
<pre><code class="language-cpp">// Setting ships
// amount i={1,2,3,4}

void vSetShips(int iShip , CMap *game){ 
  for (int i = 1 ; i &lt; 5; i++){
     // for i = 1 and initial iShip = 5
     // for(int j = 0 ; j &lt; 1;j++)
     for (int j = 0 ; j &lt; 6-iShip; j++){
         game-&gt;ship(iShip);
         game-&gt;showMap();
         }
     // Length of iShip decreased    
     iShip--;
     }
}
</code></pre>
<p>Wenn ich compile kommt eine Fehlermeldung &quot;CMap&quot; not declared. Ich habe function.h doch in class.h eingefügt, warum erkennt der den nicht an?<br />
Oder habe ich irgendwas mit dem Pointer falsch gemacht?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/284934/problem-zugriff-auf-member-funktion-durch-funktion-in-anderem-header</link><generator>RSS for Node</generator><lastBuildDate>Fri, 21 Aug 2026 15:14:48 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/284934.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 11 Apr 2011 15:07:43 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Problem: Zugriff auf member funktion durch funktion in anderem Header on Mon, 11 Apr 2011 15:07:43 GMT]]></title><description><![CDATA[<p>Hi Leute,</p>
<p>ich arbeite gerade an einen Schiffe versenken(Console). Und ich versuche den Rat vom Pumukl so gut wie möglich einzuhalten und alles möglichst modular zu halten.<br />
Also hier mein problem:</p>
<p>Ich habe in meiner Header-Datei eine Klasse definiert:</p>
<p>&quot;class.h&quot;</p>
<pre><code class="language-cpp">#include &quot;function.h&quot;
class Test{
public:
  //memberfunction
  void func();
private:
  //members  
};
</code></pre>
<p>jetzt habe ich einen Funktion die so ähnlich ausschaut:<br />
&quot;function.h&quot;</p>
<pre><code class="language-cpp">// Setting ships
// amount i={1,2,3,4}

void vSetShips(int iShip , CMap *game){ 
  for (int i = 1 ; i &lt; 5; i++){
     // for i = 1 and initial iShip = 5
     // for(int j = 0 ; j &lt; 1;j++)
     for (int j = 0 ; j &lt; 6-iShip; j++){
         game-&gt;ship(iShip);
         game-&gt;showMap();
         }
     // Length of iShip decreased    
     iShip--;
     }
}
</code></pre>
<p>Wenn ich compile kommt eine Fehlermeldung &quot;CMap&quot; not declared. Ich habe function.h doch in class.h eingefügt, warum erkennt der den nicht an?<br />
Oder habe ich irgendwas mit dem Pointer falsch gemacht?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2047568</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2047568</guid><dc:creator><![CDATA[DaNewGuy_unlogged]]></dc:creator><pubDate>Mon, 11 Apr 2011 15:07:43 GMT</pubDate></item><item><title><![CDATA[Reply to Problem: Zugriff auf member funktion durch funktion in anderem Header on Mon, 11 Apr 2011 15:10:58 GMT]]></title><description><![CDATA[<p>DaNewGuy_unlogged schrieb:</p>
<blockquote>
<p>Ich habe function.h doch in class.h eingefügt, warum erkennt der den nicht an?<br />
Oder habe ich irgendwas mit dem Pointer falsch gemacht?</p>
</blockquote>
<p>Ähmm...<br />
1. Wo hast du CMap definiert?<br />
2. Wo greifst du überhaupt auf die Klasse zu? (Ich meine wegen deines Titels).</p>
<p>Die Codestellen die du uns zeigst haben jedenfalls rein gar nichts miteinander zu tun.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2047570</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2047570</guid><dc:creator><![CDATA[asc]]></dc:creator><pubDate>Mon, 11 Apr 2011 15:10:58 GMT</pubDate></item><item><title><![CDATA[Reply to Problem: Zugriff auf member funktion durch funktion in anderem Header on Mon, 11 Apr 2011 15:16:45 GMT]]></title><description><![CDATA[<p>Zu 1.CMap wurde in &quot;class CMap{... };&quot; definiert, hier als class Test{..}; bezeichnet.</p>
<p>zu 2. in &quot;class.h&quot; inkludiere ich &quot;function.h&quot;<br />
und in function.h, greife ich per pointer auf die funktionen aus der classe zu. Die Klasse heißt CMap [game-&gt;ship(iShip) und game-&gt;showMap();] das sind die funktionen aus der Klasse CMap aus &quot;class.h&quot;</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2047574</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2047574</guid><dc:creator><![CDATA[DaNewGuy]]></dc:creator><pubDate>Mon, 11 Apr 2011 15:16:45 GMT</pubDate></item><item><title><![CDATA[Reply to Problem: Zugriff auf member funktion durch funktion in anderem Header on Mon, 11 Apr 2011 15:19:54 GMT]]></title><description><![CDATA[<p>DaNewGuy schrieb:</p>
<blockquote>
<p>Zu 1.CMap wurde in &quot;class CMap{... };&quot; definiert, hier als class Test{..}; bezeichnet.</p>
</blockquote>
<p>Das ist zu spät. <code>CMap</code> wird vor seiner Definition verwendet, also muss der Typ bekannt sein. Erstelle dazu eine Deklaration vor der ersten Verwendung:</p>
<pre><code class="language-cpp">class CMap;
</code></pre>
<p>Unter Umständen musst du die Definition der Funktion, die <code>CMap</code> verwendet, in eine separate .cpp-Datei auslagern, da der Typ vollständig bekannt sein muss.</p>
<p>Und trenne dich bitte von &quot;C&quot;-Klassenpräfixen, Gründe erfährst du <a href="http://www.c-plusplus.net/forum/p2005233#2005233" rel="nofollow">hier</a>.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2047578</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2047578</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Mon, 11 Apr 2011 15:19:54 GMT</pubDate></item><item><title><![CDATA[Reply to Problem: Zugriff auf member funktion durch funktion in anderem Header on Mon, 11 Apr 2011 15:36:15 GMT]]></title><description><![CDATA[<p>Sorry, aber in welche datei soll ich das schreiben?<br />
Um ehrlich zu sein finde ich das mit den vielen Headern zur Zeit noch recht konfus:D.<br />
Kann ich nicht &quot;class.h&quot; einfach in &quot;function.h&quot; einfügen?<br />
Und das mit mit dem großen &quot;C&quot; vor Klassen mache ich weil es den hungarian-standard von Windows programmierern entsprechen soll;-). Was für eine Notation verwendest du? Wenn die besser ist dann mache ich das auch so:D.</p>
<p>EDIT: Ich schreib die funktion jetzt einfach in die main.cpp, da hat sie einwandfrei funktioniert. Gibts da vielleicht eine option in der IDE eine Funktion in eine Header-File auszulagern? Das wäre cool und würde mir in Zukunft eine menge kopfschmerzen ersparen:D.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2047583</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2047583</guid><dc:creator><![CDATA[DaNewGuy]]></dc:creator><pubDate>Mon, 11 Apr 2011 15:36:15 GMT</pubDate></item><item><title><![CDATA[Reply to Problem: Zugriff auf member funktion durch funktion in anderem Header on Mon, 11 Apr 2011 16:41:16 GMT]]></title><description><![CDATA[<p>Du kannst ein Programm auch aus mehreren CPP-Dateien zusammenstellen. Und ansonsten hast du das #include vermutlich genau verkehrt herum angesetzt - die &quot;class.h&quot; benötigt keinen Zugriff auf die &quot;function.h&quot;, eher andersherum.</p>
<p>PS: Die ungarische Notation in dieser Form ist eher umstritten, afaik sogar im Umfeld von Microsoft.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2047619</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2047619</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Mon, 11 Apr 2011 16:41:16 GMT</pubDate></item><item><title><![CDATA[Reply to Problem: Zugriff auf member funktion durch funktion in anderem Header on Mon, 11 Apr 2011 18:23:08 GMT]]></title><description><![CDATA[<p>DaNewGuy schrieb:</p>
<blockquote>
<p>Und das mit mit dem großen &quot;C&quot; vor Klassen mache ich weil es den hungarian-standard von Windows programmierern entsprechen soll;-)</p>
</blockquote>
<p>Die MFC verwendete diese Präfixe ursprünglich als eine Art Namensraum. Einige Programmierer haben das aber falsch verstanden und sind auf die Idee gekommen, selbst vor jede Klasse ein &quot;C&quot; zu schreiben.</p>
<p>DaNewGuy schrieb:</p>
<blockquote>
<p>Was für eine Notation verwendest du? Wenn die besser ist dann mache ich das auch so:D</p>
</blockquote>
<p>Ich verwende keine typabhängigen Präfixe, weil für mich deren Nachteile überwiegen (siehe Link). Mein Stil sieht folgendermassen aus, ich würde mir jedoch nicht anmassen, ihn als &quot;der beste&quot; zu bezeichnen. Aber ein Schritt weg von den Präfixen ist immer gut <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">class MeineKlasse
{
    public:
        void MemberFunktion();

    private:
        double mMemberVariable;
};

float GlobaleFunktion()
{
    float lokaleVariable;
    return 3.f * lokaleVariable;
}

typedef MeineKlasse IrgendeinTyp;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2047682</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2047682</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Mon, 11 Apr 2011 18:23:08 GMT</pubDate></item><item><title><![CDATA[Reply to Problem: Zugriff auf member funktion durch funktion in anderem Header on Mon, 11 Apr 2011 19:33:47 GMT]]></title><description><![CDATA[<p>DaNewGuy schrieb:</p>
<blockquote>
<p>Zu 1.CMap wurde in &quot;class CMap{... };&quot; definiert, hier als class Test{..}; bezeichnet.</p>
</blockquote>
<p>Bitte achte in Zukunft darauf zumindest den Code soweit anzupassen, das wir dies auch nachvollziehen können.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2047715</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2047715</guid><dc:creator><![CDATA[asc]]></dc:creator><pubDate>Mon, 11 Apr 2011 19:33:47 GMT</pubDate></item></channel></rss>