<?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[Lässt Container nur konstante Objekte zu?]]></title><description><![CDATA[<p>Ich habe mit Container ein paar Objekte hinzugefügt.</p>
<p>Ich wollte jetzt ein paar Werte dazufügen z.b.</p>
<pre><code class="language-cpp">KontoVec::const_iterator pos;  

   for( pos = v.begin(); pos &lt; v.end(); pos++)
	   pos-&gt;setNr(5); // &lt;- hier der fehler
</code></pre>
<p>geht aber nicht es steht was von</p>
<blockquote>
<p>error C2662: 'Konto::setNr': this-Zeiger kann nicht von 'const Konto' in 'Konto &amp;' konvertiert werden<br />
Durch die Konvertierung gehen Qualifizierer verloren</p>
</blockquote>
<p>geht das nur mit konstanten Objekten?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/203664/lässt-container-nur-konstante-objekte-zu</link><generator>RSS for Node</generator><lastBuildDate>Thu, 08 Oct 2026 07:10:53 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/203664.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 25 Jan 2008 03:31:45 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Lässt Container nur konstante Objekte zu? on Fri, 25 Jan 2008 03:31:45 GMT]]></title><description><![CDATA[<p>Ich habe mit Container ein paar Objekte hinzugefügt.</p>
<p>Ich wollte jetzt ein paar Werte dazufügen z.b.</p>
<pre><code class="language-cpp">KontoVec::const_iterator pos;  

   for( pos = v.begin(); pos &lt; v.end(); pos++)
	   pos-&gt;setNr(5); // &lt;- hier der fehler
</code></pre>
<p>geht aber nicht es steht was von</p>
<blockquote>
<p>error C2662: 'Konto::setNr': this-Zeiger kann nicht von 'const Konto' in 'Konto &amp;' konvertiert werden<br />
Durch die Konvertierung gehen Qualifizierer verloren</p>
</blockquote>
<p>geht das nur mit konstanten Objekten?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1443212</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1443212</guid><dc:creator><![CDATA[xBlackKnightx]]></dc:creator><pubDate>Fri, 25 Jan 2008 03:31:45 GMT</pubDate></item><item><title><![CDATA[Reply to Lässt Container nur konstante Objekte zu? on Fri, 25 Jan 2008 06:43:30 GMT]]></title><description><![CDATA[<p>Du hast bereits ein konstantes Objekt (wegen const_iterator). Logischerweise darfst Du das Objekt nicht ändern, wenn es konstant ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1443218</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1443218</guid><dc:creator><![CDATA[LordJaxom]]></dc:creator><pubDate>Fri, 25 Jan 2008 06:43:30 GMT</pubDate></item><item><title><![CDATA[Reply to Lässt Container nur konstante Objekte zu? on Sun, 27 Jan 2008 01:27:23 GMT]]></title><description><![CDATA[<p>hm dann hab ich halt so gemacht:</p>
<pre><code class="language-cpp">vector&lt;Object&gt; objlist;
	objlist.push_back(Object());

	for ( unsigned int i=0; i &lt; objlist.size(); i++ ){
		cout &lt;&lt; objlist[i].getPosX() &lt;&lt; &quot;\n&quot;;
	}
</code></pre>
<p>geht zwar aber mir fällt da was anderes auf:</p>
<p>jedes mal wenn objlist.push_back(Object()); ausgeführt wird, wird der Destruktor von Objekt aufgerufen. Sehe ich zumindest in der Konsole.</p>
<p>Irgendwie gefällt mir das nicht. Es wird hier scheinbar immer ein Objekt erzeugt, kopiert und das was in argument von push_back ist, &quot;Object()&quot; wieder zerstört. Weil in Destruktor sind Funktionen drin. Das ist rechenaufwändiger. Habe ich recht ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1444295</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1444295</guid><dc:creator><![CDATA[xBlackKnightx]]></dc:creator><pubDate>Sun, 27 Jan 2008 01:27:23 GMT</pubDate></item><item><title><![CDATA[Reply to Lässt Container nur konstante Objekte zu? on Sun, 27 Jan 2008 01:38:11 GMT]]></title><description><![CDATA[<p>hm ich habe jetzt so gemacht:</p>
<pre><code class="language-cpp">Object* p_obj = NULL;
	p_obj = new Object;

	vector&lt;Object*&gt; objlist;
	objlist.push_back(p_obj );
	p_obj = new Object;
	objlist.push_back(p_obj );
// usw...

	for ( unsigned int i=0; i &lt; objlist.size(); i++ ){
		cout &lt;&lt; objlist[i]-&gt;getPosX() &lt;&lt; &quot;\n&quot;;
	}
</code></pre>
<p>eine vectorliste aus zeigern geht auch oder?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1444297</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1444297</guid><dc:creator><![CDATA[xBlackKnightx]]></dc:creator><pubDate>Sun, 27 Jan 2008 01:38:11 GMT</pubDate></item><item><title><![CDATA[Reply to Lässt Container nur konstante Objekte zu? on Sun, 27 Jan 2008 09:40:12 GMT]]></title><description><![CDATA[<p>jo musst aber nachher auch wieder freigeben ...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1444328</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1444328</guid><dc:creator><![CDATA[*D*Evil]]></dc:creator><pubDate>Sun, 27 Jan 2008 09:40:12 GMT</pubDate></item><item><title><![CDATA[Reply to Lässt Container nur konstante Objekte zu? on Sun, 27 Jan 2008 10:01:57 GMT]]></title><description><![CDATA[<p>guck dir die boost pointer container an, bzw. verwenden shared_ptr</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1444347</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1444347</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Sun, 27 Jan 2008 10:01:57 GMT</pubDate></item><item><title><![CDATA[Reply to Lässt Container nur konstante Objekte zu? on Sun, 27 Jan 2008 10:10:21 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">std::vector&lt;foo&gt; vec_data;

void foo(std::vector&lt;foo&gt; const&amp; data)
{
    for (std::vector&lt;foo&gt;::const_iterator it(data.begin()); it != data.end(); ++it)
        // use const. iterator (*it) == :clown:  const foo&amp;

    // for (std::size_t i(0); i &lt; data.size(); ++i)
    //     // use data[0] == const foo&amp;
}

void bar(std::vector&lt;foo&gt;&amp; data)
{
    for (std::vector&lt;foo&gt;::iterator it(data.begin()); it != data.end(); ++it)
        // use iterator (*it) == foo&amp;  

    // for (std::size_t i(0); i &lt; data.size(); ++i)
    //     // use data[i] == foo&amp;
}
</code></pre>
<p>So sieht das wohl aus <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="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1444352</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1444352</guid><dc:creator><![CDATA[*D*Evil]]></dc:creator><pubDate>Sun, 27 Jan 2008 10:10:21 GMT</pubDate></item><item><title><![CDATA[Reply to Lässt Container nur konstante Objekte zu? on Tue, 29 Jan 2008 09:38:54 GMT]]></title><description><![CDATA[<p>hustbaer schrieb:</p>
<blockquote>
<p>guck dir die boost pointer container an, bzw. verwenden shared_ptr</p>
</blockquote>
<p>gibt es da Vorteile im gegensatz zu meiner idee ?</p>
<p>(D)Evil schrieb:</p>
<blockquote>
<pre><code class="language-cpp">std::vector&lt;foo&gt; vec_data;

void foo(std::vector&lt;foo&gt; const&amp; data)
{
    for (std::vector&lt;foo&gt;::const_iterator it(data.begin()); it != data.end(); ++it)
        // use const. iterator (*it) == :clown:  const foo&amp;

    // for (std::size_t i(0); i &lt; data.size(); ++i)
    //     // use data[0] == const foo&amp;
}

void bar(std::vector&lt;foo&gt;&amp; data)
{
    for (std::vector&lt;foo&gt;::iterator it(data.begin()); it != data.end(); ++it)
        // use iterator (*it) == foo&amp;  

    // for (std::size_t i(0); i &lt; data.size(); ++i)
    //     // use data[i] == foo&amp;
}
</code></pre>
<p>So sieht das wohl aus <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="😉"
    /></p>
</blockquote>
<p>irgendwie verstehe ich das nicht so ganz<br />
worum geht es da? wie wende ich es an?</p>
<p>ich kann std::vector&lt;foo&gt;::iterator nicht schreiben da compiler es nicht kennt scheinbar. nur const_iterator</p>
<p>der fehler kommt so raus</p>
<blockquote>
<p>ITERAT_T.CPP<br />
error C2664: 'std::_Vector_iterator&lt;_Ty,_Alloc&gt;::_Vector_iterator(const std::_Vector_iterator&lt;_Ty,_Alloc&gt; &amp;)': Konvertierung des Parameters 1 von 'std::_Vector_const_iterator&lt;_Ty,_Alloc&gt;' in 'const std::_Vector_iterator&lt;_Ty,_Alloc&gt; &amp;' nicht möglich<br />
with<br />
[<br />
_Ty=Konto,<br />
_Alloc=std::allocator&lt;Konto&gt;<br />
]<br />
Ursache: Konvertierung von 'std::_Vector_const_iterator&lt;_Ty,_Alloc&gt;' in 'const std::_Vector_iterator&lt;_Ty,_Alloc&gt;' nicht möglich<br />
with<br />
[<br />
_Ty=Konto,<br />
_Alloc=std::allocator&lt;Konto&gt;<br />
]<br />
Kein benutzerdefinierter Konvertierungsoperator verfügbar, der diese Konvertierung durchführen kann, oder der Operator kann nicht aufgerufen werden</p>
</blockquote>
]]></description><link>https://www.c-plusplus.net/forum/post/1445512</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1445512</guid><dc:creator><![CDATA[xBlackKnightx]]></dc:creator><pubDate>Tue, 29 Jan 2008 09:38:54 GMT</pubDate></item><item><title><![CDATA[Reply to Lässt Container nur konstante Objekte zu? on Tue, 29 Jan 2008 09:51:09 GMT]]></title><description><![CDATA[<p>Der Compiler meckert weil du irgendwo von einem const_iterator auf einen iterator wechseln willst. Aus einem Konstanten vector kannst du nur konstante iteratoren und daher nur konstante Objekte bekommen. Wenn du uns allerdings deinen Code nicht zeigst können wir nur raten wo der Fehler liegen mag.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1445516</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1445516</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Tue, 29 Jan 2008 09:51:09 GMT</pubDate></item><item><title><![CDATA[Reply to Lässt Container nur konstante Objekte zu? on Tue, 29 Jan 2008 12:06:23 GMT]]></title><description><![CDATA[<p>pumuckl schrieb:</p>
<blockquote>
<p>Der Compiler meckert weil du irgendwo von einem const_iterator auf einen iterator wechseln willst. Aus einem Konstanten vector kannst du nur konstante iteratoren und daher nur konstante Objekte bekommen. Wenn du uns allerdings deinen Code nicht zeigst können wir nur raten wo der Fehler liegen mag.</p>
</blockquote>
<p>oops! tatsächlich</p>
<p>hatte const in argument nicht bemerkt &quot;void display(const KontoVec&amp; v)&quot;</p>
<p>danke für die klarstellung</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1445581</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1445581</guid><dc:creator><![CDATA[xBlackKnightx]]></dc:creator><pubDate>Tue, 29 Jan 2008 12:06:23 GMT</pubDate></item></channel></rss>