<?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[&#x27;Staff&#x27;: &#x27;struct&#x27; Typneudefinition   ---&amp;gt; bin ich blind?]]></title><description><![CDATA[<p>Hallo,<br />
ich bekomme eine sehr komische Errormeldung:</p>
<pre><code>'Staff': 'struct' Typneudefinition
</code></pre>
<p>Hier mein ganz einfacher Code (Staff.h):</p>
<pre><code class="language-cpp">#include &lt;windows.h&gt;
#include &lt;stack&gt;

struct Staff
{
	Staff(POINT position);
	POINT pos;
	std::stack&lt;int&gt; *my_staff;
};
</code></pre>
<p>Es ist nirgends in meinem Projekt Staff deklariert, außer hier. Wenn ich Staff in Rumpelstielzchen verändere, dann funktioniert es trotzdem nicht und es kommt eine Fehlermeldung mit Rumpelstielchen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
<p>Sagt mal... bin ich blind oder warum sehe ich den Fehler nicht?<br />
Hoffe ihr könnt mir helfen <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>
<p>Gruß Speedy_92</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/220321/staff-struct-typneudefinition-gt-bin-ich-blind</link><generator>RSS for Node</generator><lastBuildDate>Wed, 07 Oct 2026 09:55:05 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/220321.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 14 Aug 2008 15:04:52 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to &#x27;Staff&#x27;: &#x27;struct&#x27; Typneudefinition   ---&amp;gt; bin ich blind? on Thu, 14 Aug 2008 15:04:52 GMT]]></title><description><![CDATA[<p>Hallo,<br />
ich bekomme eine sehr komische Errormeldung:</p>
<pre><code>'Staff': 'struct' Typneudefinition
</code></pre>
<p>Hier mein ganz einfacher Code (Staff.h):</p>
<pre><code class="language-cpp">#include &lt;windows.h&gt;
#include &lt;stack&gt;

struct Staff
{
	Staff(POINT position);
	POINT pos;
	std::stack&lt;int&gt; *my_staff;
};
</code></pre>
<p>Es ist nirgends in meinem Projekt Staff deklariert, außer hier. Wenn ich Staff in Rumpelstielzchen verändere, dann funktioniert es trotzdem nicht und es kommt eine Fehlermeldung mit Rumpelstielchen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
<p>Sagt mal... bin ich blind oder warum sehe ich den Fehler nicht?<br />
Hoffe ihr könnt mir helfen <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>
<p>Gruß Speedy_92</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1564834</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1564834</guid><dc:creator><![CDATA[Speedy_92]]></dc:creator><pubDate>Thu, 14 Aug 2008 15:04:52 GMT</pubDate></item><item><title><![CDATA[Reply to &#x27;Staff&#x27;: &#x27;struct&#x27; Typneudefinition   ---&amp;gt; bin ich blind? on Thu, 14 Aug 2008 15:09:18 GMT]]></title><description><![CDATA[<p>Wie benutzt Du das struct?<br />
Wo ist die Konstruktor Impl.?<br />
Gruss Simon</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1564837</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1564837</guid><dc:creator><![CDATA[simon.gysi]]></dc:creator><pubDate>Thu, 14 Aug 2008 15:09:18 GMT</pubDate></item><item><title><![CDATA[Reply to &#x27;Staff&#x27;: &#x27;struct&#x27; Typneudefinition   ---&amp;gt; bin ich blind? on Thu, 14 Aug 2008 15:15:02 GMT]]></title><description><![CDATA[<p>Die Konstruktor Implementierung ist in<br />
Staff.cpp:</p>
<pre><code class="language-cpp">#include &quot;Staff.h&quot;

Staff::Staff(POINT position)
:	pos(position)
{}
</code></pre>
<p>Move.h:</p>
<pre><code class="language-cpp">#include &quot;Staff.h&quot;

void Move(int count, Staff a, Staff b, Staff c);
</code></pre>
<p>Move.cpp:</p>
<pre><code class="language-cpp">#include &quot;Move.h&quot;

//funktion bewege (Zahl i, Stab a, Stab b, Stab c) {
//    falls (i &gt; 0) {
//       bewege(i-1, a, c, b);
//       verschiebe oberste Scheibe von a nach c;
//       bewege(i-1, b, a, c);
//    }
//}
void Move(int count, Staff a, Staff b, Staff c)
{
	if(count &gt; 0)
	{
		Move(count - 1, a, c, b);
		c.my_staff-&gt;push(a.my_staff-&gt;top());
		a.my_staff-&gt;pop();
		Move(count - 1, b, a, c);
	}
}
</code></pre>
<p>Mein Ziel ist es die <a href="http://de.wikipedia.org/wiki/T%C3%BCrme_von_Hanoi" rel="nofollow">Türme von Hanoi</a> darzustellen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1564840</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1564840</guid><dc:creator><![CDATA[Speedy_92]]></dc:creator><pubDate>Thu, 14 Aug 2008 15:15:02 GMT</pubDate></item><item><title><![CDATA[Reply to &#x27;Staff&#x27;: &#x27;struct&#x27; Typneudefinition   ---&amp;gt; bin ich blind? on Thu, 14 Aug 2008 15:37:51 GMT]]></title><description><![CDATA[<p>Klingt für micht nach &quot;include-Recursion&quot;.<br />
z.B. wenn Du in der main.cpp Staff UND Move.h inkludierst:</p>
<p>main<br />
-&gt; staff.h<br />
-&gt; move.h -&gt; staff.h // Boom !! hier ist &quot;Staff&quot; schon bekannt</p>
<p>Mach doch mal &quot;include guards&quot;</p>
<p>...</p>
<pre><code class="language-cpp">#ifndef STAFF_H
#define STAFF_H

// .. hier der Rest von Staff.h

#endif // STAFF_H
</code></pre>
<p>.. könnte allerdings sein, dass Du eine &quot;echte&quot; Rekursion hast. Dann bekommst Du später eine &quot;unbekannter Typ&quot;-Meldung, die Du dann mittels &quot;forward declaration&quot; in den Griff bekommen kannst.</p>
<p>Gruß,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1564855</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1564855</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Thu, 14 Aug 2008 15:37:51 GMT</pubDate></item><item><title><![CDATA[Reply to &#x27;Staff&#x27;: &#x27;struct&#x27; Typneudefinition   ---&amp;gt; bin ich blind? on Thu, 14 Aug 2008 15:34:31 GMT]]></title><description><![CDATA[<p>Vielen Dank <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="🙂"
    /><br />
Genau das wars</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1564865</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1564865</guid><dc:creator><![CDATA[Speedy_92]]></dc:creator><pubDate>Thu, 14 Aug 2008 15:34:31 GMT</pubDate></item><item><title><![CDATA[Reply to &#x27;Staff&#x27;: &#x27;struct&#x27; Typneudefinition   ---&amp;gt; bin ich blind? on Thu, 14 Aug 2008 15:39:36 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>gern geschehen. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
<p>Noch 2 Nachträge:<br />
1.)</p>
<p>Speedy_92 schrieb:</p>
<blockquote>
<p>...</p>
<pre><code class="language-cpp">...
struct Staff
{
...
	std::stack&lt;int&gt; *my_staff;
};
</code></pre>
</blockquote>
<p>Falls Du hier vorhast, das stack-Objekt auf den Heap zu legen (also mit new) =&gt; unnötig, aufwendig und fehleranfällig =&gt; nicht tun.<br />
Das hier tut's besser:</p>
<pre><code class="language-cpp">...
struct Staff
{ ...
	std::stack&lt;int&gt; my_staff;
};
</code></pre>
<p>(Falls Du Dir Sorgen um die Größe machst: trotz des Namens ist es sehr wahrscheinlich, dass std::stack seine Daten intern sowieso auf den Heap legt)</p>
<p>2.)</p>
<p>Speedy_92 schrieb:</p>
<blockquote>
<p>...</p>
<pre><code class="language-cpp">...void Move(int count, Staff a, Staff b, Staff c);
</code></pre>
</blockquote>
<p>Ich würde hier nicht 3 Staff-Objekte jedesmal kopieren. Referenzen helfen....<br />
Entweder willst Du wirklich die übergebenen Objekte nicht verändern, dann kannst Du besser const-Referenzen nehmen:</p>
<pre><code class="language-cpp">void Move(int count, Staff const&amp; a, Staff const&amp; b, Staff const&amp; c);
</code></pre>
<p>... oder Dir ist da sowieso ein Fehler unterlaufen und Du willst eigentlich die Staff-Objekte auch verändern in Move(). Dann MUSST Du sogar Referenzen (oder Zeiger) verwenden:</p>
<pre><code class="language-cpp">void Move(int count, Staff&amp; a, Staff&amp; b, Staff&amp; c);
</code></pre>
<p>In beiden Fällen braucht's übrigens IIRC gar nicht das &quot;#include &quot;Staff.h&quot;&quot;, sondern eine forward-declaration reicht:</p>
<pre><code class="language-cpp">struct Staff;
void Move(int count, Staff&amp; a, Staff&amp; b, Staff&amp; c);
</code></pre>
<p>Gruß,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1564868</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1564868</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Thu, 14 Aug 2008 15:39:36 GMT</pubDate></item><item><title><![CDATA[Reply to &#x27;Staff&#x27;: &#x27;struct&#x27; Typneudefinition   ---&amp;gt; bin ich blind? on Thu, 14 Aug 2008 15:54:00 GMT]]></title><description><![CDATA[<p>Dankeschön. Werde meinen Code überarbeiten.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1564876</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1564876</guid><dc:creator><![CDATA[Speedy_92]]></dc:creator><pubDate>Thu, 14 Aug 2008 15:54:00 GMT</pubDate></item></channel></rss>