<?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[Vektor von Objekten - Immer wird gleiches Objekt eingefügt,]]></title><description><![CDATA[<p>Hi,</p>
<p>ich möchte eine Liste von Instanzen meiner Objektklasse erzeugen und anschließend ausgeben. Leider wird mir immer das selbe Objekt übergeben.<br />
Ich bin neu in C++, habe vorher Java programmiert.<br />
Ich vermute dass der Pointer im Vektor eingetragen wird, und sich der Pointer ändert und sich somit das Element im Vektor ändert (hab das selbe auch schon mit nem Array und ner STD::List probiert, selbes Problem).<br />
Bitte zeigt mir, wie man sowas richtig macht.</p>
<p>Hier mein Code:</p>
<p>Objektklasse für die Instanzen:</p>
<pre><code>QString protitle;
QString prodescription;
QString prolink;
QString proguid;
QString proenclosure;

tvprogramm::tvprogramm()
{
}

tvprogramm::tvprogramm(QString tit,QString des,QString lin,QString gui,QString enc)
{
    protitle=tit;
    prodescription=des;
    prolink=lin;
    proguid=gui;
    proenclosure=enc;
}

QString tvprogramm::gettitle()
{
    return protitle;
}
</code></pre>
<p>Ich parse eine XML in einer While-Schleife, Werte ändern sich definitiv beim einfügen (hab ich überprüft):</p>
<pre><code>std::vector&lt;tvprogramm&gt; pros;

 while(!reader.atEnd() &amp;&amp; !reader.hasError())
   {

       if(reader.name() == &quot;item&quot; &amp;&amp; reader.isStartElement())
        {
           readitem=true;
        }

       if(reader.name() == &quot;item&quot; &amp;&amp; !reader.isStartElement())
        {
           readitem=false;

           tvprogramm *tvzeiger=new                    tvprogramm(title,description,link,guid,enclosure);

           pros.push_back(*tvzeiger);

           //ui-&gt;listWidget-&gt;addItem(title);
        }

        if(reader.name() == &quot;title&quot; &amp;&amp; reader.isStartElement() &amp;&amp; readitem==true)
            {
            reader.readNext();
            if(reader.isCharacters()) title = reader.text().toString();
            }

 reader.readNext();

   }

}
</code></pre>
<p>Hiermit geb ich aus:</p>
<pre><code>for (int i=0; i&lt;pros.size(); i++) ui-&gt;listWidget-&gt;addItem(pros[i].gettitle());
</code></pre>
<p>Danke im Voraus, verzweifel daran gerade.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/322122/vektor-von-objekten-immer-wird-gleiches-objekt-eingefügt</link><generator>RSS for Node</generator><lastBuildDate>Sat, 18 Jul 2026 10:09:37 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/322122.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 07 Dec 2013 17:53:38 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Vektor von Objekten - Immer wird gleiches Objekt eingefügt, on Sat, 07 Dec 2013 17:53:38 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>ich möchte eine Liste von Instanzen meiner Objektklasse erzeugen und anschließend ausgeben. Leider wird mir immer das selbe Objekt übergeben.<br />
Ich bin neu in C++, habe vorher Java programmiert.<br />
Ich vermute dass der Pointer im Vektor eingetragen wird, und sich der Pointer ändert und sich somit das Element im Vektor ändert (hab das selbe auch schon mit nem Array und ner STD::List probiert, selbes Problem).<br />
Bitte zeigt mir, wie man sowas richtig macht.</p>
<p>Hier mein Code:</p>
<p>Objektklasse für die Instanzen:</p>
<pre><code>QString protitle;
QString prodescription;
QString prolink;
QString proguid;
QString proenclosure;

tvprogramm::tvprogramm()
{
}

tvprogramm::tvprogramm(QString tit,QString des,QString lin,QString gui,QString enc)
{
    protitle=tit;
    prodescription=des;
    prolink=lin;
    proguid=gui;
    proenclosure=enc;
}

QString tvprogramm::gettitle()
{
    return protitle;
}
</code></pre>
<p>Ich parse eine XML in einer While-Schleife, Werte ändern sich definitiv beim einfügen (hab ich überprüft):</p>
<pre><code>std::vector&lt;tvprogramm&gt; pros;

 while(!reader.atEnd() &amp;&amp; !reader.hasError())
   {

       if(reader.name() == &quot;item&quot; &amp;&amp; reader.isStartElement())
        {
           readitem=true;
        }

       if(reader.name() == &quot;item&quot; &amp;&amp; !reader.isStartElement())
        {
           readitem=false;

           tvprogramm *tvzeiger=new                    tvprogramm(title,description,link,guid,enclosure);

           pros.push_back(*tvzeiger);

           //ui-&gt;listWidget-&gt;addItem(title);
        }

        if(reader.name() == &quot;title&quot; &amp;&amp; reader.isStartElement() &amp;&amp; readitem==true)
            {
            reader.readNext();
            if(reader.isCharacters()) title = reader.text().toString();
            }

 reader.readNext();

   }

}
</code></pre>
<p>Hiermit geb ich aus:</p>
<pre><code>for (int i=0; i&lt;pros.size(); i++) ui-&gt;listWidget-&gt;addItem(pros[i].gettitle());
</code></pre>
<p>Danke im Voraus, verzweifel daran gerade.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2370442</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2370442</guid><dc:creator><![CDATA[ratsplayer]]></dc:creator><pubDate>Sat, 07 Dec 2013 17:53:38 GMT</pubDate></item><item><title><![CDATA[Reply to Vektor von Objekten - Immer wird gleiches Objekt eingefügt, on Sat, 07 Dec 2013 17:59:49 GMT]]></title><description><![CDATA[<p>Ich habe das Gefühl, dass du bei</p>
<pre><code class="language-cpp">tvprogramm *tvzeiger=new                    tvprogramm(title,description,link,guid,enclosure);

           pros.push_back(*tvzeiger);
</code></pre>
<p>(was sich übrigens besser als</p>
<pre><code class="language-cpp">tvprogramm tv(title,description,link,guid,enclosure);
           pros.push_back(tv);
</code></pre>
<p>oder</p>
<pre><code class="language-cpp">pros.push_back(tvprogramm(title,description,link,guid,enclosure));
</code></pre>
<p>schreiben liesse)</p>
<p>immer die gleichen title,description,link,guid,enclosure übergibst. Änderst du die irgendwo?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2370445</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2370445</guid><dc:creator><![CDATA[gaerdf]]></dc:creator><pubDate>Sat, 07 Dec 2013 17:59:49 GMT</pubDate></item><item><title><![CDATA[Reply to Vektor von Objekten - Immer wird gleiches Objekt eingefügt, on Sat, 07 Dec 2013 18:17:53 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>erstmal danke für deine schnelle Antwort.<br />
Ja es werden definitiv andere Werte eingefügt.<br />
Wenn ich die direkt zb title ausgebe (nach/vor dem Einfügen in den Vektor) kann ich sehen, dass die Werte tatsächlich unterschiedlich sind.</p>
<p>Die beiden anderen Varianten hab ich auch schon ausprobiert, es kommt das selbe dabei heraus.</p>
<p>Es wird übrigens immer das letzte Element der Liste ausgeben (Also werden alle Elemente des Vektors (ca 180Stk) mit dem letzten Element überscheiben).</p>
<p>Ich entwickle mit dem QT Creator.</p>
<p>Noch irgend eine andere Idee?</p>
<p>Gruß</p>
<p>P.S.:</p>
<p>Gerade noch einen kleinen Test gemacht und nach dem 2. Element das Einfügen aufgehört: Jetzt sind 2 Elemente in der Liste -&gt; 2. das 2. Element. Also überschreibt das Element bei push_back ALLE Elemente in der Liste und fügt sich hinten an. Warum ist das so? push_back in QT Creator buggy? Ich verstehs nicht!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2370447</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2370447</guid><dc:creator><![CDATA[ratsplayer]]></dc:creator><pubDate>Sat, 07 Dec 2013 18:17:53 GMT</pubDate></item><item><title><![CDATA[Reply to Vektor von Objekten - Immer wird gleiches Objekt eingefügt, on Sat, 07 Dec 2013 21:19:57 GMT]]></title><description><![CDATA[<p>Bei dir sind die variablen global und nicht Bestandteil der klasse</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2370463</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2370463</guid><dc:creator><![CDATA[firefly]]></dc:creator><pubDate>Sat, 07 Dec 2013 21:19:57 GMT</pubDate></item><item><title><![CDATA[Reply to Vektor von Objekten - Immer wird gleiches Objekt eingefügt, on Sat, 07 Dec 2013 19:45:00 GMT]]></title><description><![CDATA[<p>Vielen, vielen Dank!<br />
An so einer Kleinigkeit hab ich stundenlang rumprobiert...</p>
<p>Schönen Abend noch <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/2370464</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2370464</guid><dc:creator><![CDATA[ratsplayer]]></dc:creator><pubDate>Sat, 07 Dec 2013 19:45:00 GMT</pubDate></item></channel></rss>