<?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[Klasseninstanzen an vector Liste anfügen]]></title><description><![CDATA[<p>Ich schreibe an einer Klasse die Geräte verwalten soll. Da es mehrere dieser Geräte an einem Controller geben kann schreibe ich eine Klasse für das Gerät und eine für den Kontroller.</p>
<p>Zugreifen möchte ich dann quasi per</p>
<pre><code class="language-cpp">Positioniereinheit.Verschiebetische[1].tuewas
Positioniereinheit.Verschiebetische[2].tuewas
</code></pre>
<p>Dazu habe ich in der Klasse Positioniereinheit<br />
folgenden Code:</p>
<pre><code class="language-cpp">vector&lt;PI_TranslationStage&gt; Verschiebetische;

int Positioniereinheit::AddTranslationStage()
{
	PI_TranslationStage * newStage = new PI_TranslationStage;
	TranslationStage.push_back(newStage);
}
</code></pre>
<p>das funktioniert aber nicht. Ich wüsste auch nicht wo ich die Variablen wieder 'deleten' sollte.</p>
<blockquote>
<p>error C2664: 'std::vector&lt;_Ty&gt;::push_back': Konvertierung des Parameters 1 von 'PI_TranslationStage *' in 'const PI_TranslationStage &amp;' nicht möglich</p>
</blockquote>
<p>Wie mache ich das dann stattdessen?</p>
<p>Matthias</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/200241/klasseninstanzen-an-vector-liste-anfügen</link><generator>RSS for Node</generator><lastBuildDate>Sun, 04 Oct 2026 10:09:36 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/200241.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 12 Dec 2007 13:58:35 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Klasseninstanzen an vector Liste anfügen on Wed, 12 Dec 2007 13:58:35 GMT]]></title><description><![CDATA[<p>Ich schreibe an einer Klasse die Geräte verwalten soll. Da es mehrere dieser Geräte an einem Controller geben kann schreibe ich eine Klasse für das Gerät und eine für den Kontroller.</p>
<p>Zugreifen möchte ich dann quasi per</p>
<pre><code class="language-cpp">Positioniereinheit.Verschiebetische[1].tuewas
Positioniereinheit.Verschiebetische[2].tuewas
</code></pre>
<p>Dazu habe ich in der Klasse Positioniereinheit<br />
folgenden Code:</p>
<pre><code class="language-cpp">vector&lt;PI_TranslationStage&gt; Verschiebetische;

int Positioniereinheit::AddTranslationStage()
{
	PI_TranslationStage * newStage = new PI_TranslationStage;
	TranslationStage.push_back(newStage);
}
</code></pre>
<p>das funktioniert aber nicht. Ich wüsste auch nicht wo ich die Variablen wieder 'deleten' sollte.</p>
<blockquote>
<p>error C2664: 'std::vector&lt;_Ty&gt;::push_back': Konvertierung des Parameters 1 von 'PI_TranslationStage *' in 'const PI_TranslationStage &amp;' nicht möglich</p>
</blockquote>
<p>Wie mache ich das dann stattdessen?</p>
<p>Matthias</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1419369</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1419369</guid><dc:creator><![CDATA[pospiech]]></dc:creator><pubDate>Wed, 12 Dec 2007 13:58:35 GMT</pubDate></item><item><title><![CDATA[Reply to Klasseninstanzen an vector Liste anfügen on Wed, 12 Dec 2007 14:04:51 GMT]]></title><description><![CDATA[<p>Lass mal das new weg - in dem vector hast (und brauchst) du doch gar keine Zeiger:</p>
<pre><code class="language-cpp">int Positioniereinheit::AddTranslationStage()
{
    TranslationStage.push_back(PI_TranlationStage());//packe ein default-initialisiertes Objekt in den vector&lt;&gt;
    return 0;//wenn die Funktion als int definiert ist, sollte sie auch etwas zurückgeben
}
</code></pre>
<p>oder</p>
<pre><code class="language-cpp">int Positioniereinheit::AddTranslationStage()
{
    PI_TranslationStage newStage;
    TranslationStage.push_back(newStage);
    return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1419376</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1419376</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Wed, 12 Dec 2007 14:04:51 GMT</pubDate></item><item><title><![CDATA[Reply to Klasseninstanzen an vector Liste anfügen on Wed, 12 Dec 2007 14:11:03 GMT]]></title><description><![CDATA[<p>ich glaub der vector kann keine direkten pointer so verwalten, da es ja wie du selber merkst unklar ist wann das objekt zerstoert wird<br />
nimm am besten direkt eine instanz ohne new</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1419380</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1419380</guid><dc:creator><![CDATA[EXDW]]></dc:creator><pubDate>Wed, 12 Dec 2007 14:11:03 GMT</pubDate></item><item><title><![CDATA[Reply to Klasseninstanzen an vector Liste anfügen on Wed, 12 Dec 2007 14:13:37 GMT]]></title><description><![CDATA[<p>Mr Evil schrieb:</p>
<blockquote>
<p>ich glaub der vector kann keine direkten pointer so verwalten, da es ja wie du selber merkst unklar ist wann das objekt zerstoert wird</p>
</blockquote>
<p>Klar kann er das, wenn du es ihm sagst - er überlässt es nur komplett deiner Verantwortung, wann der Heap wieder freigegeben wird (sprich - du müßtest manuell für alle Elemente delete aufrufen, bevor sie aus dem vector geworfen werden).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1419382</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1419382</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Wed, 12 Dec 2007 14:13:37 GMT</pubDate></item><item><title><![CDATA[Reply to Klasseninstanzen an vector Liste anfügen on Wed, 12 Dec 2007 14:21:38 GMT]]></title><description><![CDATA[<p>aah, gut zu wissen {=<br />
wenn dann lieber std::auto_ptr in nem vector schmeissen, wenns schon allokiert werden soll #gg</p>
<p>std::map&lt;std::vector&lt;std::auto_ptr&lt;wchar_t&gt;&gt;, int&gt; fasel;</p>
<p>sieht gut aus #gg</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1419392</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1419392</guid><dc:creator><![CDATA[EXDW]]></dc:creator><pubDate>Wed, 12 Dec 2007 14:21:38 GMT</pubDate></item><item><title><![CDATA[Reply to Klasseninstanzen an vector Liste anfügen on Wed, 12 Dec 2007 14:26:22 GMT]]></title><description><![CDATA[<p>Mr Evil schrieb:</p>
<blockquote>
<p>wenn dann lieber std::auto_ptr in nem vector schmeissen, wenns schon allokiert werden soll #gg</p>
</blockquote>
<p>auto_ptr&lt;&gt; kannst du nicht in STL-Container packen (Copy-Ctor und operator= erfüllen nicht die Anforderungen an Container-Elemente), aber die Richtung stimmt schon <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="😉"
    /> Im Zweifelsfall würde ich einen boost::shared_ptr&lt;&gt; verwenden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1419398</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1419398</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Wed, 12 Dec 2007 14:26:22 GMT</pubDate></item><item><title><![CDATA[Reply to Klasseninstanzen an vector Liste anfügen on Wed, 12 Dec 2007 15:14:19 GMT]]></title><description><![CDATA[<p>Im zweifels fall würde ich std::tr1::shared_ptr benutzen. Habt ihr immer noch kein TR1 auf eurer Platte? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f62e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_open_mouth"
      title=":open_mouth:"
      alt="😮"
    /> <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>
]]></description><link>https://www.c-plusplus.net/forum/post/1419440</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1419440</guid><dc:creator><![CDATA[Artchi]]></dc:creator><pubDate>Wed, 12 Dec 2007 15:14:19 GMT</pubDate></item><item><title><![CDATA[Reply to Klasseninstanzen an vector Liste anfügen on Wed, 12 Dec 2007 15:36:08 GMT]]></title><description><![CDATA[<p>Artchi: Wo gibt es denn (außer für den gcc) die TR1-Header Files (z.B. für den MSVC++ oder Borland C++)?<br />
Und zwar nachträglich, ohne daß ich die neueste Version kaufen muß...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1419460</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1419460</guid><dc:creator><![CDATA[Th]]></dc:creator><pubDate>Wed, 12 Dec 2007 15:36:08 GMT</pubDate></item><item><title><![CDATA[Reply to Klasseninstanzen an vector Liste anfügen on Wed, 12 Dec 2007 15:58:32 GMT]]></title><description><![CDATA[<p>Bei Boost ist es dabei! Wenn man sowieso schon Boost-sonstwas empfehlt, kann man auch gleich std::tr1-sonstwas empfehlen. Auch wenn Boost.TR1 nicht komplett ist, aber das meist genutzte ist dabei.<br />
<a href="http://www.boost.org/doc/html/boost_tr1.html" rel="nofollow">http://www.boost.org/doc/html/boost_tr1.html</a></p>
<p>Apaches Standardlib soll angeblich auch TR1 haben... habs aber nicht nachgeprüft:<br />
<a href="http://incubator.apache.org/stdcxx/" rel="nofollow">http://incubator.apache.org/stdcxx/</a></p>
<p>Für MSVC2008 will MS übrigens auch TR1 in ein paar Monaten nachreichen, als kostenloses Upgrade.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1419467</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1419467</guid><dc:creator><![CDATA[Artchi]]></dc:creator><pubDate>Wed, 12 Dec 2007 15:58:32 GMT</pubDate></item></channel></rss>