<?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[stack problem]]></title><description><![CDATA[<p>hi,<br />
also erstmal im voraus: ich bin noch ein einsteiger in sachen c++.<br />
ich habe folgendes programm zum austesten von stacks geschrieben.</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;

using namespace std;

class tKnoten
{
public:
        int Daten;
        tKnoten *Naechster;
};

class tStack
{
public:
        tStack();
        ~tStack();
        void Rauf(int Daten);
        int Runter();

private:
        tKnoten *Anker;
};

tStack::tStack()
{
    Anker = 0;
}

tStack::~tStack()
{
    tKnoten *Letzter;

    while(Anker)
    {
        Letzter = Anker;
        Anker = Anker-&gt;Naechster;
        delete Letzter;
    }
}

void tStack::Rauf(int Daten)
{
    tKnoten *Knoten = new tKnoten;
    Knoten-&gt;Daten = Daten;
    Knoten-&gt;Naechster = Anker;
    Anker = Knoten;
}

int tStack::Runter()
{
    int Inhalt = 0;

    if(Anker)
    {
        tKnoten *Alt = Anker;
        Anker = Anker-&gt;Naechster;
        Inhalt = Alt-&gt;Daten;
        delete Alt;
    }
    return Inhalt;
}

int main()
{
    tStack *Stack;

    Stack-&gt;Rauf(12);
    Stack-&gt;Rauf(32);
    Stack-&gt;Rauf(18);

    cout &lt;&lt; Stack-&gt;Runter() &lt;&lt; endl;
    cout &lt;&lt; Stack-&gt;Runter() &lt;&lt; endl;
    cout &lt;&lt; Stack-&gt;Runter() &lt;&lt; endl;
    cout &lt;&lt; Stack-&gt;Runter() &lt;&lt; endl;

    system(&quot;pause&quot;);
}
</code></pre>
<p>hier wird komischerweise bei der ausführung des codes beim 4. aufruf von Stack-&gt;Runter() eine zahl ungleich 0 zurückgegeben. wieso? und warum funktionert es so wie es soll wenn ich statt einen zeiger auf tStack, ein objekt dieser klasse definiere? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
<p>mich würde auch mal gerne interessieren ob und was an meinen programmier-stil auszusetzen/verbessern gibt. was ich mir da vorstellen könnte ist das ich eigentlich alle namen auf deutsch gewählt habe und nicht auf englisch oder ein teil englisch und der andere deutsch (außer stack, das wort kenn ich aber auch schon viel länger so als das wort stapel) weil ich nur in einer sprache programmieren will, entweder deutsch oder englisch, sonst kommt man zu schnell durcheinander</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/158372/stack-problem</link><generator>RSS for Node</generator><lastBuildDate>Wed, 09 Sep 2026 18:09:26 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/158372.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 04 Sep 2006 19:25:14 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to stack problem on Mon, 04 Sep 2006 19:25:14 GMT]]></title><description><![CDATA[<p>hi,<br />
also erstmal im voraus: ich bin noch ein einsteiger in sachen c++.<br />
ich habe folgendes programm zum austesten von stacks geschrieben.</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;

using namespace std;

class tKnoten
{
public:
        int Daten;
        tKnoten *Naechster;
};

class tStack
{
public:
        tStack();
        ~tStack();
        void Rauf(int Daten);
        int Runter();

private:
        tKnoten *Anker;
};

tStack::tStack()
{
    Anker = 0;
}

tStack::~tStack()
{
    tKnoten *Letzter;

    while(Anker)
    {
        Letzter = Anker;
        Anker = Anker-&gt;Naechster;
        delete Letzter;
    }
}

void tStack::Rauf(int Daten)
{
    tKnoten *Knoten = new tKnoten;
    Knoten-&gt;Daten = Daten;
    Knoten-&gt;Naechster = Anker;
    Anker = Knoten;
}

int tStack::Runter()
{
    int Inhalt = 0;

    if(Anker)
    {
        tKnoten *Alt = Anker;
        Anker = Anker-&gt;Naechster;
        Inhalt = Alt-&gt;Daten;
        delete Alt;
    }
    return Inhalt;
}

int main()
{
    tStack *Stack;

    Stack-&gt;Rauf(12);
    Stack-&gt;Rauf(32);
    Stack-&gt;Rauf(18);

    cout &lt;&lt; Stack-&gt;Runter() &lt;&lt; endl;
    cout &lt;&lt; Stack-&gt;Runter() &lt;&lt; endl;
    cout &lt;&lt; Stack-&gt;Runter() &lt;&lt; endl;
    cout &lt;&lt; Stack-&gt;Runter() &lt;&lt; endl;

    system(&quot;pause&quot;);
}
</code></pre>
<p>hier wird komischerweise bei der ausführung des codes beim 4. aufruf von Stack-&gt;Runter() eine zahl ungleich 0 zurückgegeben. wieso? und warum funktionert es so wie es soll wenn ich statt einen zeiger auf tStack, ein objekt dieser klasse definiere? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
<p>mich würde auch mal gerne interessieren ob und was an meinen programmier-stil auszusetzen/verbessern gibt. was ich mir da vorstellen könnte ist das ich eigentlich alle namen auf deutsch gewählt habe und nicht auf englisch oder ein teil englisch und der andere deutsch (außer stack, das wort kenn ich aber auch schon viel länger so als das wort stapel) weil ich nur in einer sprache programmieren will, entweder deutsch oder englisch, sonst kommt man zu schnell durcheinander</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1131085</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1131085</guid><dc:creator><![CDATA[stack_nicht_versteher]]></dc:creator><pubDate>Mon, 04 Sep 2006 19:25:14 GMT</pubDate></item><item><title><![CDATA[Reply to stack problem on Mon, 04 Sep 2006 20:00:03 GMT]]></title><description><![CDATA[<p>Nur mal kurz überflogen:</p>
<pre><code class="language-cpp">// entweder
tStack *Stack = new tStack;
// oder
tStack Stack;
</code></pre>
<p>Dass es in deinem Code nicht kracht ist quasi Zufall, du legst keine Instanz an.</p>
<p>Ach ja, wie unterscheidest du zwischen &quot;leererStack-&gt;Runter()&quot; und &quot;stack-&gt;Rauf(0); stack-&gt;Runter()&quot;?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1131114</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1131114</guid><dc:creator><![CDATA[finix]]></dc:creator><pubDate>Mon, 04 Sep 2006 20:00:03 GMT</pubDate></item><item><title><![CDATA[Reply to stack problem on Mon, 04 Sep 2006 20:08:32 GMT]]></title><description><![CDATA[<p><a href="http://www.henkessoft.de/C++/C++%20Fortgeschrittene/C++_Fortgeschrittene.htm#2.6._Template-Stack-Klasse" rel="nofollow">http://www.henkessoft.de/C++/C++ Fortgeschrittene/C++_Fortgeschrittene.htm#2.6._Template-Stack-Klasse</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1131123</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1131123</guid><dc:creator><![CDATA[Erhard Henkes]]></dc:creator><pubDate>Mon, 04 Sep 2006 20:08:32 GMT</pubDate></item><item><title><![CDATA[Reply to stack problem on Mon, 04 Sep 2006 20:12:45 GMT]]></title><description><![CDATA[<p>ach ja, ok thx</p>
<p>is mir auch grad aufgefallen. ich schätz mal das kann man am besten mit einer bool in der klasse tStack regeln die wenn der stack leer is false ist und wenn noch was drin ist true oder?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1131125</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1131125</guid><dc:creator><![CDATA[stack_jetzt_versteher]]></dc:creator><pubDate>Mon, 04 Sep 2006 20:12:45 GMT</pubDate></item><item><title><![CDATA[Reply to stack problem on Mon, 04 Sep 2006 20:18:00 GMT]]></title><description><![CDATA[<p>stack_jetzt_versteher schrieb:</p>
<blockquote>
<p>ich schätz mal das kann man am besten mit einer bool in der klasse tStack regeln die wenn der stack leer is false ist und wenn noch was drin ist true oder?</p>
</blockquote>
<p>man nimmt eher behauptungen (assert) oder ausnahmen (throw exception) und lässt das programm dadurch mit absicht so abstürzen, dass auf den fehler und seine position hingewiesen wird</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1131129</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1131129</guid><dc:creator><![CDATA[ausnahme]]></dc:creator><pubDate>Mon, 04 Sep 2006 20:18:00 GMT</pubDate></item></channel></rss>