<?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[klassen und STL]]></title><description><![CDATA[<p>Lerne grad die Grundlagen von STL und komme beim Programmieren nicht weiter.<br />
void liste(char *a,char *b){</p>
<p>klasse k(a,b);<br />
static std::list&lt;klasse&gt; l;<br />
l.push_back(k);<br />
}</p>
<p>Soweit so gut. Ich übergebe 2 strings an die Klasse die sich per Konstruktor erstellt und Pröpfe die in eine doppelt verkettete Liste aus der STL.</p>
<p>Allerdings entsteht hierbei schon das erste Problem. Die Liste inst nicht global, sodass ich gleich probleme kriege wennich sie in der nächsten Funktion ansprechenmöchte zur Ausgabe....<br />
Ich glaub dass das eigentlich elementares C ist sowas hinzukriegen. Aber naja ich hab da wohl gepennt. Lasse mich aber gerne belehren wie ich das Problem löse. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /><br />
Dachte es ging mit static. Hab mich aber wohl getäuscht.</p>
<p>Aber nun zum nächsten Problem</p>
<p>void listeausgabe(){<br />
std::list&lt;klasse&gt;::iterator i;<br />
for (i = l.begin(); i!= l.end(); ++i){<br />
std::cout &lt;&lt; *i.print() &lt;&lt;&quot;\n&quot;;<br />
}<br />
}</p>
<p>Hier hat der die Liste l schon gelöscht. (Das elementare c++ Problem wo ich die Nachhilfe dringend brauche <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /> )<br />
Nun aber zu dem anderen Problem</p>
<p>std::cout &lt;&lt; *i.print() &lt;&lt;&quot;\n&quot;;</p>
<p>Die Funktion print() gehört zu der Klasse die ich geschriben hab und gibt wie nicht anders zu erwarten die Werte dieich eingetragen hab aus.</p>
<p>Das diese Zeile absoluter Quatsch ist ist mir klar. Ich will aber nun die funktion Print sämtlicher elemente der Liste nacheinander ausgeben. Da haperts. Wie mach ich das?</p>
<p>Freu mich über jede hilfe</p>
<p>MFG<br />
chew</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/133324/klassen-und-stl</link><generator>RSS for Node</generator><lastBuildDate>Thu, 27 Aug 2026 21:45:00 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/133324.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 16 Jan 2006 21:00:03 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to klassen und STL on Mon, 16 Jan 2006 21:00:03 GMT]]></title><description><![CDATA[<p>Lerne grad die Grundlagen von STL und komme beim Programmieren nicht weiter.<br />
void liste(char *a,char *b){</p>
<p>klasse k(a,b);<br />
static std::list&lt;klasse&gt; l;<br />
l.push_back(k);<br />
}</p>
<p>Soweit so gut. Ich übergebe 2 strings an die Klasse die sich per Konstruktor erstellt und Pröpfe die in eine doppelt verkettete Liste aus der STL.</p>
<p>Allerdings entsteht hierbei schon das erste Problem. Die Liste inst nicht global, sodass ich gleich probleme kriege wennich sie in der nächsten Funktion ansprechenmöchte zur Ausgabe....<br />
Ich glaub dass das eigentlich elementares C ist sowas hinzukriegen. Aber naja ich hab da wohl gepennt. Lasse mich aber gerne belehren wie ich das Problem löse. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /><br />
Dachte es ging mit static. Hab mich aber wohl getäuscht.</p>
<p>Aber nun zum nächsten Problem</p>
<p>void listeausgabe(){<br />
std::list&lt;klasse&gt;::iterator i;<br />
for (i = l.begin(); i!= l.end(); ++i){<br />
std::cout &lt;&lt; *i.print() &lt;&lt;&quot;\n&quot;;<br />
}<br />
}</p>
<p>Hier hat der die Liste l schon gelöscht. (Das elementare c++ Problem wo ich die Nachhilfe dringend brauche <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /> )<br />
Nun aber zu dem anderen Problem</p>
<p>std::cout &lt;&lt; *i.print() &lt;&lt;&quot;\n&quot;;</p>
<p>Die Funktion print() gehört zu der Klasse die ich geschriben hab und gibt wie nicht anders zu erwarten die Werte dieich eingetragen hab aus.</p>
<p>Das diese Zeile absoluter Quatsch ist ist mir klar. Ich will aber nun die funktion Print sämtlicher elemente der Liste nacheinander ausgeben. Da haperts. Wie mach ich das?</p>
<p>Freu mich über jede hilfe</p>
<p>MFG<br />
chew</p>
]]></description><link>https://www.c-plusplus.net/forum/post/968439</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/968439</guid><dc:creator><![CDATA[chewbo]]></dc:creator><pubDate>Mon, 16 Jan 2006 21:00:03 GMT</pubDate></item><item><title><![CDATA[Reply to klassen und STL on Mon, 16 Jan 2006 21:05:09 GMT]]></title><description><![CDATA[<p>chewbo schrieb:</p>
<blockquote>
<p>Lerne grad die Grundlagen von STL und komme beim Programmieren nicht weiter.</p>
</blockquote>
<p>Ja, schalt erst mal nen Gang zurück, deine Analyse ...</p>
<blockquote>
<p>Ich glaub dass das eigentlich elementares C ist sowas hinzukriegen. Aber naja ich hab da wohl gepennt.</p>
</blockquote>
<p>... ist vollkommen korrekt. (Wenn auch falsch formuliert, du willst kein elementares C, sondern elementares C++ lernen.)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/968444</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/968444</guid><dc:creator><![CDATA[Bashar]]></dc:creator><pubDate>Mon, 16 Jan 2006 21:05:09 GMT</pubDate></item><item><title><![CDATA[Reply to klassen und STL on Tue, 17 Jan 2006 07:32:16 GMT]]></title><description><![CDATA[<p>Kurz gesagt: Wenn du lokale Variablen in anderen Funktionen benötigst, mußt du sie dorthin übergeben (das geht per Parameter oder Rückgabewert, je nach Richtung):</p>
<pre><code class="language-cpp">void ausgabe(const list&lt;klasse&gt;&amp; l)
{
  for(list&lt;klasse&gt;::iterator i=l.begin();i!=l.end();++i)
    cout&lt;&lt;i-&gt;print()&lt;&lt;endl;
}

list&lt;klasse&gt; erzeuge()
{
  list&lt;klasse&gt; vals;
  klasse k(a,b);
  vals.push_back(k);
  ...
  return vals;
}

int main()
{
  list&lt;klasse&gt; mylist=erzeuge();
  ausgabe(mylist);
  return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/968584</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/968584</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Tue, 17 Jan 2006 07:32:16 GMT</pubDate></item><item><title><![CDATA[Reply to klassen und STL on Tue, 17 Jan 2006 10:55:44 GMT]]></title><description><![CDATA[<p>Ja da fiels mir doch glatt wie Schuppen aus den Haaren. Und wenn man mehr als ein Elementr zurückgeben will musste man das irgendwie mit Zeigern machen.<br />
Naja. Aber wie nicht anders zu erwarten ist ein neues Problem entstanden.</p>
<pre><code>list&lt;klasse&gt; erzeuge()
{
  list&lt;klasse&gt; vals;
  klasse k(a,b);
  vals.push_back(k);
  ...
  return vals;
}
</code></pre>
<p>so steht das jetzt in etwa auch in meiner *.cpp Datei drin.<br />
Kopfzerbrechen bereitet mir nun meine *.h Datei, denn dort wollte ich den Prtotoyp deklarieren mit</p>
<pre><code>list&lt;klasse&gt; erzeuge()
</code></pre>
<p>kriege allerdings die Fehlermeldung</p>
<pre><code>c:\Dokumente und Einstellungen\chew\Eigene Dateien\Visual Studio Projects\inputoutput\liste.h(4) : error C2143: Syntaxfehler: Es fehlt ';' vor '&lt;'
c:\Dokumente und Einstellungen\chew\Eigene Dateien\Visual Studio Projects\inputoutput\liste.h(4) : error C2501: 'list': Fehlende Speicherklasse oder Typspezifizierer
</code></pre>
<p>Drum dacht ich mir müsst ich das ding sicherlich dem std Namespace zuordnen</p>
<pre><code>std::list&lt;klasse&gt; erzeuge()
</code></pre>
<p>Da sagt mmir der gemeine Hund es sei kein Element von std. Was ich stark zu bezweifeln mag.</p>
<p>Wie schreib ich das jetzt syntaktisch korrekt?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/968730</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/968730</guid><dc:creator><![CDATA[chewbo]]></dc:creator><pubDate>Tue, 17 Jan 2006 10:55:44 GMT</pubDate></item><item><title><![CDATA[Reply to klassen und STL on Tue, 17 Jan 2006 11:00:26 GMT]]></title><description><![CDATA[<p>du brauchst auch ein &quot;#include &lt;list&gt;&quot; in der Headerdatei, damit der Compiler die Liste erkennt (und btw ein ; am Ende des Prototyps).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/968736</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/968736</guid><dc:creator><![CDATA[CStoll (off)]]></dc:creator><pubDate>Tue, 17 Jan 2006 11:00:26 GMT</pubDate></item><item><title><![CDATA[Reply to klassen und STL on Tue, 17 Jan 2006 11:01:48 GMT]]></title><description><![CDATA[<p>chewbo schrieb:</p>
<blockquote>
<p>Ja da fiels mir doch glatt wie Schuppen aus den Haaren. Und wenn man mehr als ein Elementr zurückgeben will musste man das irgendwie mit Zeigern machen.</p>
</blockquote>
<p>naja, schau dir das thema aber genau an, bevor du damit arbeitest!<br />
denn unter zurückgeben, und verändern ist ein unterschied!</p>
<p>und versuchs mal mit</p>
<pre><code class="language-cpp">list&lt;klasse&gt; erzeuge;
</code></pre>
<p>statt</p>
<pre><code class="language-cpp">list&lt;klasse&gt; erzeuge()
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/968737</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/968737</guid><dc:creator><![CDATA[ser1al]]></dc:creator><pubDate>Tue, 17 Jan 2006 11:01:48 GMT</pubDate></item><item><title><![CDATA[Reply to klassen und STL on Tue, 17 Jan 2006 11:07:01 GMT]]></title><description><![CDATA[<p>Gbit der mir die gleiche Fehlermeldung aus. sowohl mit als auch ohne std::....</p>
]]></description><link>https://www.c-plusplus.net/forum/post/968743</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/968743</guid><dc:creator><![CDATA[chewbo]]></dc:creator><pubDate>Tue, 17 Jan 2006 11:07:01 GMT</pubDate></item><item><title><![CDATA[Reply to klassen und STL on Tue, 17 Jan 2006 11:19:01 GMT]]></title><description><![CDATA[<p>chewbo schrieb:</p>
<blockquote>
<p>Gbit der mir die gleiche Fehlermeldung aus. sowohl mit als auch ohne std::....</p>
</blockquote>
<p>hast den hinweis von cstoll beachtet?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/968759</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/968759</guid><dc:creator><![CDATA[ser1al]]></dc:creator><pubDate>Tue, 17 Jan 2006 11:19:01 GMT</pubDate></item><item><title><![CDATA[Reply to klassen und STL on Tue, 17 Jan 2006 11:31:17 GMT]]></title><description><![CDATA[<p>oops das muss ich wohl überscrollt haben.<br />
Sorry. das ist mir jetzt peinlich.</p>
<p>Jetzt klappt es. Vielen dank.<br />
wusste garnicht dass man in headerdateien auch headerdateien included.<br />
Man lernt doch täglich dazu.....</p>
<p>Vielen dank nochmal. Jetzt komm ich weiter....<br />
chewbo</p>
]]></description><link>https://www.c-plusplus.net/forum/post/968768</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/968768</guid><dc:creator><![CDATA[chewbo]]></dc:creator><pubDate>Tue, 17 Jan 2006 11:31:17 GMT</pubDate></item><item><title><![CDATA[Reply to klassen und STL on Tue, 17 Jan 2006 11:41:10 GMT]]></title><description><![CDATA[<p>chewbo schrieb:</p>
<blockquote>
<p>wusste garnicht dass man in headerdateien auch headerdateien included.</p>
</blockquote>
<p>Ja, macht man - wenn man deren Deklarationen für seine eigenen Funktionsprototypen benötigt (schließlich will dein Compiler wissen, was er da machen soll, wenn er eine list&lt;klasse&gt; zurückgeben muß).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/968776</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/968776</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Tue, 17 Jan 2006 11:41:10 GMT</pubDate></item><item><title><![CDATA[Reply to klassen und STL on Tue, 17 Jan 2006 11:58:40 GMT]]></title><description><![CDATA[<p>Ähm noch ein Problem krieg ich hier grade</p>
<pre><code>cout&lt;&lt;i-&gt;print()&lt;&lt;endl;
</code></pre>
<p>Krieg da die Fehlermeldung</p>
<pre><code>c:\Dokumente und Einstellungen\chew\Eigene Dateien\Visual Studio Projects\inputoutput\liste.cpp(31) : error C2679: Binärer Operator '&lt;&lt;': Es konnte kein Operator gefunden werden, der einen rechtsseitigen Operator vom Typ 'void' akzeptiert (oder keine geeignete Konvertierung möglich)
</code></pre>
<p>Kann damit nichzt wirklich wasw anfangen</p>
]]></description><link>https://www.c-plusplus.net/forum/post/968791</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/968791</guid><dc:creator><![CDATA[chewbo]]></dc:creator><pubDate>Tue, 17 Jan 2006 11:58:40 GMT</pubDate></item><item><title><![CDATA[Reply to klassen und STL on Tue, 17 Jan 2006 12:02:45 GMT]]></title><description><![CDATA[<p>liegt viell daran, das print() void zurückgibt!</p>
<p>das heißt, du solltest es mal ohne dein cout&lt;&lt; probieren!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/968799</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/968799</guid><dc:creator><![CDATA[ser1al]]></dc:creator><pubDate>Tue, 17 Jan 2006 12:02:45 GMT</pubDate></item></channel></rss>