<?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[instanz zurückgeben...]]></title><description><![CDATA[<p>hi!</p>
<p>ich habe 2 klassen:<br />
zb.:</p>
<pre><code class="language-cpp">class s1
{
  public:
          void fahren();
};

class s2
{
  public:
          void hinzufügen()
          { 
            s1 x; // instanz der klasse s1 erstellen
            // will das zurückgeben in private dieser klasse.....damit die  
            // methode ausführen diese instanz verwenden kann...

          }

          void ausführen()
          {

          }

};
</code></pre>
<p>also ich habe 2 klassen...in klasse 2 erstelle ich in einer methode eine instanz der klasse 1...nun wird aber immer die instanz der klasse 1 wieder gelöscht wenn die methode hinzufügen fertig ist...will das objekt irgendwie zurückgeben damit ich es in methode ausführen verwenden kann...wie geht das?</p>
<p>cu <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/topic/84739/instanz-zurückgeben</link><generator>RSS for Node</generator><lastBuildDate>Sun, 12 Apr 2026 05:43:24 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/84739.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 02 Sep 2004 06:43:44 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to instanz zurückgeben... on Thu, 02 Sep 2004 06:43:44 GMT]]></title><description><![CDATA[<p>hi!</p>
<p>ich habe 2 klassen:<br />
zb.:</p>
<pre><code class="language-cpp">class s1
{
  public:
          void fahren();
};

class s2
{
  public:
          void hinzufügen()
          { 
            s1 x; // instanz der klasse s1 erstellen
            // will das zurückgeben in private dieser klasse.....damit die  
            // methode ausführen diese instanz verwenden kann...

          }

          void ausführen()
          {

          }

};
</code></pre>
<p>also ich habe 2 klassen...in klasse 2 erstelle ich in einer methode eine instanz der klasse 1...nun wird aber immer die instanz der klasse 1 wieder gelöscht wenn die methode hinzufügen fertig ist...will das objekt irgendwie zurückgeben damit ich es in methode ausführen verwenden kann...wie geht das?</p>
<p>cu <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/597509</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/597509</guid><dc:creator><![CDATA[killer]]></dc:creator><pubDate>Thu, 02 Sep 2004 06:43:44 GMT</pubDate></item><item><title><![CDATA[Reply to instanz zurückgeben... on Thu, 02 Sep 2004 06:56:27 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">class s1 
{ 
  public: 
          void fahren(); 
}; 

class s2 
{
private:
    s1 x;
  public:
          void hinzufügen() 
          { 
              // du kannst nun x ganz normal verwenden
          } 

          void ausführen() 
          { 

          } 

}
</code></pre>
<p>Das nennt sich Hat-Beziehung, ein gutes Stichwort zu googlen. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f60b.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_savoring_food"
      title=":yum:"
      alt="😋"
    /><br />
Du kannst auch noch im Konstruktor das Objekt gleich mit richtigen Werten initialisieren.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/597514</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/597514</guid><dc:creator><![CDATA[ChrissiB]]></dc:creator><pubDate>Thu, 02 Sep 2004 06:56:27 GMT</pubDate></item><item><title><![CDATA[Reply to instanz zurückgeben... on Thu, 02 Sep 2004 07:26:49 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/5377">@ChrissiB</a>: ja das weiß ich ja *g*<br />
aber ich will ja mehrere instanzen der klasse s1 in methode hinzufügen erstellen...immer wenn hinzufügen aufgerufen wird soll eine neue instanz der klasse 1 erstellt werden...wie geht das dann? muss ich ja die instanz irgendwie returnen?</p>
<p>cu</p>
]]></description><link>https://www.c-plusplus.net/forum/post/597542</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/597542</guid><dc:creator><![CDATA[killer]]></dc:creator><pubDate>Thu, 02 Sep 2004 07:26:49 GMT</pubDate></item><item><title><![CDATA[Reply to instanz zurückgeben... on Thu, 02 Sep 2004 07:29:48 GMT]]></title><description><![CDATA[<p>Oh sorry, habe dich falsch verstanden <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /><br />
Benutze std::vector in der Klasse s2, somit kannst du das realisieren</p>
]]></description><link>https://www.c-plusplus.net/forum/post/597545</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/597545</guid><dc:creator><![CDATA[ChrissiB]]></dc:creator><pubDate>Thu, 02 Sep 2004 07:29:48 GMT</pubDate></item><item><title><![CDATA[Reply to instanz zurückgeben... on Thu, 02 Sep 2004 07:57:55 GMT]]></title><description><![CDATA[<p>ChrissiB schrieb:</p>
<blockquote>
<p>Oh sorry, habe dich falsch verstanden <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /><br />
Benutze std::vector in der Klasse s2, somit kannst du das realisieren</p>
</blockquote>
<pre><code class="language-cpp">class s2 
{ 
  private:
          typedef std::vector &lt;s1*&gt;	       CVector;
          typedef std::vector &lt;s1*&gt;::iterator   CVector_it;
          CVector s1Vector;

  public: 
          void Instanz_hinzufügen() 
          { 
            s1 x;
            s1Vector.push_back(&amp;x); 
          } 

          void Instanz_() 
          { 
            CVector_it it;

            // alle elemente des vector durchgehen 
            for (it = s1Vector.begin(); i != s1Vector.end(); ++i) 
            {
              // will eine methode der klasse s1 aufrufen
              ((*it)-&gt;s1).methode();

            }  
          }  

};
</code></pre>
<p>müsste so klappen, ich weiß nicht genau ob das klappt mit dem aufruf einer methode der klasse s1? cu</p>
]]></description><link>https://www.c-plusplus.net/forum/post/597560</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/597560</guid><dc:creator><![CDATA[killer]]></dc:creator><pubDate>Thu, 02 Sep 2004 07:57:55 GMT</pubDate></item><item><title><![CDATA[Reply to instanz zurückgeben... on Thu, 02 Sep 2004 08:17:36 GMT]]></title><description><![CDATA[<p>Du hast im vector ein Zeiger auf s1. in hinzufuegen() erstellst du ein Objekt der Klasse.<br />
Nun fügst du das Objekt dem vector hinzu, sodass der vector einen Zeiger auf dieses Objekt hat.<br />
Die Methode wird verlassen und dein Objekt wird zersört.<br />
Was passiert aber nun mit dem Zeiger, er zeigt ja auf was, dass es gar net mehr gibt.<br />
Edit: Brauchst du überhaupt Zeiger?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/597576</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/597576</guid><dc:creator><![CDATA[ChrissiB]]></dc:creator><pubDate>Thu, 02 Sep 2004 08:17:36 GMT</pubDate></item><item><title><![CDATA[Reply to instanz zurückgeben... on Thu, 02 Sep 2004 08:17:40 GMT]]></title><description><![CDATA[<p>ChrissiB schrieb:</p>
<blockquote>
<p>Du hast im vector ein Zeiger auf s1. in hinzufuegen() erstellst du ein Objekt der Klasse.<br />
Nun fügst du das Objekt dem vector hinzu, sodass der vector einen Zeiger auf dieses Objekt hat.<br />
Die Methode wird verlassen und dein Objekt wird zersört.<br />
Was passiert aber nun mit dem Zeiger, er zeigt ja auf was, dass es gar net mehr gibt.</p>
</blockquote>
<p>einfach dann ohne zeiger auf vector:</p>
<pre><code class="language-cpp">typedef std::vector &lt;s1&gt;           CVector; 
          typedef std::vector &lt;s1&gt;::iterator   CVector_it;
</code></pre>
<p>dann so die methode der klasse s1 aurufen?</p>
<pre><code class="language-cpp">(it).methode();
</code></pre>
<p>danke<br />
cu</p>
]]></description><link>https://www.c-plusplus.net/forum/post/597578</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/597578</guid><dc:creator><![CDATA[killer]]></dc:creator><pubDate>Thu, 02 Sep 2004 08:17:40 GMT</pubDate></item><item><title><![CDATA[Reply to instanz zurückgeben... on Thu, 02 Sep 2004 08:18:29 GMT]]></title><description><![CDATA[<p>ChrissiB schrieb:</p>
<blockquote>
<p>Du hast im vector ein Zeiger auf s1. in hinzufuegen() erstellst du ein Objekt der Klasse.<br />
Nun fügst du das Objekt dem vector hinzu, sodass der vector einen Zeiger auf dieses Objekt hat.<br />
Die Methode wird verlassen und dein Objekt wird zersört.<br />
Was passiert aber nun mit dem Zeiger, er zeigt ja auf was, dass es gar net mehr gibt.</p>
</blockquote>
<p>einfach dann ohne zeiger auf vector:</p>
<pre><code class="language-cpp">typedef std::vector &lt;s1&gt;           CVector; 
          typedef std::vector &lt;s1&gt;::iterator   CVector_it;
</code></pre>
<p>dann so die methode der klasse s1 aurufen?</p>
<pre><code class="language-cpp">(it).methode();
</code></pre>
<p>danke<br />
cu</p>
]]></description><link>https://www.c-plusplus.net/forum/post/597579</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/597579</guid><dc:creator><![CDATA[killer]]></dc:creator><pubDate>Thu, 02 Sep 2004 08:18:29 GMT</pubDate></item><item><title><![CDATA[Reply to instanz zurückgeben... on Thu, 02 Sep 2004 08:36:19 GMT]]></title><description><![CDATA[<p>So müsste es gehen. Du hast halt ein extra Aufruf des Copy-Konstruktor.<br />
Du könntes das auch z.b. mit boost::shared_ptr lösen, da dieser sich um das Aufräumen keiner Daten auf den Heap kümmert.<br />
Edit: also so: std::vector&lt;boost::shared_ptr&lt;s1&gt; &gt;;</p>
]]></description><link>https://www.c-plusplus.net/forum/post/597582</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/597582</guid><dc:creator><![CDATA[ChrissiB]]></dc:creator><pubDate>Thu, 02 Sep 2004 08:36:19 GMT</pubDate></item><item><title><![CDATA[Reply to instanz zurückgeben... on Thu, 02 Sep 2004 08:36:29 GMT]]></title><description><![CDATA[<p>ChrissiB schrieb:</p>
<blockquote>
<p>So müsste es gehen. Du hast halt ein extra Aufruf des Copy-Konstruktor.<br />
Du könntes das auch z.b. mit boost::shared_ptr lösen, da dieser sich um das Aufräumen keiner Daten auf den Heap kümmert.</p>
</blockquote>
<p>ich schau mir das mit boost mal an...<br />
wie schaut das dann mit boost::shared_ptr aus? auf dem heap wird ja wieder alles selber gelöscht nach prog ende? oder meinst du was anderes?</p>
<p>cu</p>
]]></description><link>https://www.c-plusplus.net/forum/post/597588</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/597588</guid><dc:creator><![CDATA[killer]]></dc:creator><pubDate>Thu, 02 Sep 2004 08:36:29 GMT</pubDate></item><item><title><![CDATA[Reply to instanz zurückgeben... on Thu, 02 Sep 2004 08:38:30 GMT]]></title><description><![CDATA[<p>ChrissiB schrieb:</p>
<blockquote>
<p>So müsste es gehen. Du hast halt ein extra Aufruf des Copy-Konstruktor.<br />
Du könntes das auch z.b. mit boost::shared_ptr lösen, da dieser sich um das Aufräumen keiner Daten auf den Heap kümmert.</p>
</blockquote>
<p>ich schau mir das mit boost mal an...<br />
wie schaut das dann mit boost::shared_ptr aus? auf dem heap wird ja wieder alles selber gelöscht nach prog ende? oder meinst du was anderes?</p>
<p>cu</p>
]]></description><link>https://www.c-plusplus.net/forum/post/597589</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/597589</guid><dc:creator><![CDATA[killer]]></dc:creator><pubDate>Thu, 02 Sep 2004 08:38:30 GMT</pubDate></item><item><title><![CDATA[Reply to instanz zurückgeben... on Thu, 02 Sep 2004 09:05:04 GMT]]></title><description><![CDATA[<p>Nein, die Daten werde auf dem Heap nach Programmende nicht gelöscht.<br />
Du löscht die Daten mit delete.<br />
Es sieht ungefähr so aus: std::vector&lt;boost::shared_ptr&lt;s1&gt; &gt; vec;<br />
und eintragen mit vec.push_back(boost::shared_ptr&lt;s1&gt;());<br />
Das Forum war grade down, konnt net früher schreiben. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/597598</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/597598</guid><dc:creator><![CDATA[ChrissiB]]></dc:creator><pubDate>Thu, 02 Sep 2004 09:05:04 GMT</pubDate></item><item><title><![CDATA[Reply to instanz zurückgeben... on Thu, 02 Sep 2004 10:43:53 GMT]]></title><description><![CDATA[<p>ChrissiB schrieb:</p>
<blockquote>
<p>Nein, die Daten werde auf dem Heap nach Programmende nicht gelöscht.<br />
Du löscht die Daten mit delete.<br />
Es sieht ungefähr so aus: std::vector&lt;boost::shared_ptr&lt;s1&gt; &gt; vec;<br />
und eintragen mit vec.push_back(boost::shared_ptr&lt;s1&gt;());<br />
Das Forum war grade down, konnt net früher schreiben. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
</blockquote>
<p>seit wann muss ich das das objekt das ich statisch anlege mit delete löschen? sorry aber klingt irgendwie unlogisch...</p>
<p>cu</p>
]]></description><link>https://www.c-plusplus.net/forum/post/597671</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/597671</guid><dc:creator><![CDATA[killer]]></dc:creator><pubDate>Thu, 02 Sep 2004 10:43:53 GMT</pubDate></item><item><title><![CDATA[Reply to instanz zurückgeben... on Thu, 02 Sep 2004 11:03:56 GMT]]></title><description><![CDATA[<p>Nein, muss du nicht.<br />
Ich meine was anderes, habe schon weitergedacht <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="🙂"
    /><br />
boost::shared_ptr legt ein Objekt auf dem Heap ab. Es kümmert sich komplett um die Speicherverwaltung, d.h. du musst kein Objekt erzeugen und auch dieses nicht löschen mittels delete.<br />
Du arbeites also mit deinem Objekt über diesen shared_ptr.<br />
Du musst ja das Objekt auf dem Heap anlegen, da es, wenn es auf dem Stack liegt, nach dem Gültigskeitbereich einer lokalen Variable gelöscht wird. (wie ich schon mal geschrieben habe)<br />
Ein Smart Pointer ist praktisch, du müsstest nämlich sonst immer vor Programmende die ganzen deletes aufrufen, damit der Speicher wieder frei wird.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/597691</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/597691</guid><dc:creator><![CDATA[ChrissiB]]></dc:creator><pubDate>Thu, 02 Sep 2004 11:03:56 GMT</pubDate></item><item><title><![CDATA[Reply to instanz zurückgeben... on Thu, 02 Sep 2004 11:25:44 GMT]]></title><description><![CDATA[<p>ChrissiB schrieb:</p>
<blockquote>
<p>Nein, muss du nicht.<br />
Ich meine was anderes, habe schon weitergedacht <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="🙂"
    /><br />
boost::shared_ptr legt ein Objekt auf dem Heap ab. Es kümmert sich komplett um die Speicherverwaltung, d.h. du musst kein Objekt erzeugen und auch dieses nicht löschen mittels delete.<br />
Du arbeites also mit deinem Objekt über diesen shared_ptr.<br />
Du musst ja das Objekt auf dem Heap anlegen, da es, wenn es auf dem Stack liegt, nach dem Gültigskeitbereich einer lokalen Variable gelöscht wird. (wie ich schon mal geschrieben habe)<br />
Ein Smart Pointer ist praktisch, du müsstest nämlich sonst immer vor Programmende die ganzen deletes aufrufen, damit der Speicher wieder frei wird.</p>
</blockquote>
<p>ok ich leite mal weiter ab....ich muss das objekt auf dem heap anlegen:<br />
zb so:</p>
<pre><code class="language-cpp">c1 *x = new c1();
</code></pre>
<p>da is einfach ein pointer auf das object...welches auf dem heap angelegt wurde....<br />
ja dann ich ja klar das man das auch wieder mit delete löschen muss!</p>
<p>wenn ich das objekt auf dem stack anlege dann wird es wenn die methode Instanz_hinzufügen() ausgeführt wurde wieder gelöscht...dann sind ja smartpointer richtig nette sachen;-)</p>
<p>kann sowas nicht funktionieren:</p>
<pre><code class="language-cpp">void c1&amp; getInstance() { 
            c1 x; // objekt der klasse c1 erzeugen
            return x; // und dieses zurückgeben... 
        }
</code></pre>
<p>cu <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/597719</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/597719</guid><dc:creator><![CDATA[killer]]></dc:creator><pubDate>Thu, 02 Sep 2004 11:25:44 GMT</pubDate></item><item><title><![CDATA[Reply to instanz zurückgeben... on Thu, 02 Sep 2004 11:35:58 GMT]]></title><description><![CDATA[<blockquote>
<p>kann sowas nicht funktionieren:</p>
<pre><code class="language-cpp">void c1&amp; getInstance() { 
            c1 x; // objekt der klasse c1 erzeugen
            return x; // und dieses zurückgeben... 
        }
</code></pre>
<p>cu <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
</blockquote>
<p>nein, erstmal gehört das void bestimmt weg <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 />
du hast nun das selbe Problem wie bei den Zeigern:<br />
Du hekommst eine ungültige Refernz, da das lokale Objekt zerstört wird.<br />
Du könntest aber eine Kopie zurückgeben, ich finde den Weg über Smart-Pointer aber besser.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/597739</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/597739</guid><dc:creator><![CDATA[ChrissiB]]></dc:creator><pubDate>Thu, 02 Sep 2004 11:35:58 GMT</pubDate></item><item><title><![CDATA[Reply to instanz zurückgeben... on Thu, 02 Sep 2004 11:59:11 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">class s2 
{ 
  private: 
          typedef std::vector&lt;boost::shared_ptr&lt;s1&gt; &gt; vec;
          typedef std::vector&lt;boost::shared_ptr&lt;s1&gt; &gt;::iterator   vec_it; 
          vec s1Vector; 

  public: 
          void Instanz_hinzufügen() 
          { 
            // c1 *x = new c1();
            s1Vector.push_back(boost::shared_ptr&lt;s1&gt;());  
          } 

          void methode_der_Klasse_s1_aufrufen() 
          { 
            vec_it it; 

            // alle elemente des vector durchgehen 
            for (it = s1Vector.begin(); i != s1Vector.end(); ++i) 
            { 
              // will eine methode der klasse s1 aufrufen 
              (it).methode(); 

            }   
          }   

};
</code></pre>
<p>nun so ok?<br />
also das boost::shared_ptr&lt;s1&gt;() macht sowas wie c1 *x = new c1(); ?<br />
die methode der klasse s1 ruf ich jetzt auch richtig auf?<br />
muss mal erklären wie so smart pointer funktionieren;-) smart pointer scheinen nett zu sein <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
<p>cu</p>
]]></description><link>https://www.c-plusplus.net/forum/post/597766</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/597766</guid><dc:creator><![CDATA[killer]]></dc:creator><pubDate>Thu, 02 Sep 2004 11:59:11 GMT</pubDate></item><item><title><![CDATA[Reply to instanz zurückgeben... on Thu, 02 Sep 2004 13:00:55 GMT]]></title><description><![CDATA[<p>Edit: Mist, der hat alle genommen..</p>
]]></description><link>https://www.c-plusplus.net/forum/post/597849</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/597849</guid><dc:creator><![CDATA[ChrissiB]]></dc:creator><pubDate>Thu, 02 Sep 2004 13:00:55 GMT</pubDate></item><item><title><![CDATA[Reply to instanz zurückgeben... on Thu, 02 Sep 2004 13:02:04 GMT]]></title><description><![CDATA[<p>Edt: weg..</p>
]]></description><link>https://www.c-plusplus.net/forum/post/597850</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/597850</guid><dc:creator><![CDATA[ChrissiB]]></dc:creator><pubDate>Thu, 02 Sep 2004 13:02:04 GMT</pubDate></item><item><title><![CDATA[Reply to instanz zurückgeben... on Thu, 02 Sep 2004 13:01:26 GMT]]></title><description><![CDATA[<p>Edit: gelöscht</p>
]]></description><link>https://www.c-plusplus.net/forum/post/597856</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/597856</guid><dc:creator><![CDATA[ChrissiB]]></dc:creator><pubDate>Thu, 02 Sep 2004 13:01:26 GMT</pubDate></item><item><title><![CDATA[Reply to instanz zurückgeben... on Thu, 02 Sep 2004 13:02:41 GMT]]></title><description><![CDATA[<p>Edit: boah, 4 mal <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="😮"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/597858</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/597858</guid><dc:creator><![CDATA[ChrissiB]]></dc:creator><pubDate>Thu, 02 Sep 2004 13:02:41 GMT</pubDate></item><item><title><![CDATA[Reply to instanz zurückgeben... on Thu, 02 Sep 2004 13:17:34 GMT]]></title><description><![CDATA[<p>leichte edit problems *g*</p>
<p>auf meinen letzten post:<br />
-----------------------<br />
nun so ok?<br />
also das boost::shared_ptr&lt;s1&gt;() macht sowas wie c1 *x = new c1(); ?<br />
die methode der klasse s1 ruf ich jetzt auch richtig auf?<br />
muss mal erklären wie so smart pointer funktionieren;-)</p>
<p>cu</p>
]]></description><link>https://www.c-plusplus.net/forum/post/597883</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/597883</guid><dc:creator><![CDATA[killer]]></dc:creator><pubDate>Thu, 02 Sep 2004 13:17:34 GMT</pubDate></item><item><title><![CDATA[Reply to instanz zurückgeben... on Thu, 02 Sep 2004 13:45:55 GMT]]></title><description><![CDATA[<p>killer schrieb:</p>
<blockquote>
<p>leichte edit problems *g*</p>
<p>auf meinen letzten post:<br />
-----------------------<br />
nun so ok?<br />
also das boost::shared_ptr&lt;s1&gt;() macht sowas wie c1 *x = new c1(); ?<br />
die methode der klasse s1 ruf ich jetzt auch richtig auf?<br />
muss mal erklären wie so smart pointer funktionieren;-)</p>
<p>cu</p>
</blockquote>
<p><a href="http://ootips.org/yonat/4dev/smart-pointers.html" rel="nofollow">http://ootips.org/yonat/4dev/smart-pointers.html</a><br />
Lesde das durch, das soll deine Fragen beantworten.<br />
Und ja, die Methode wird aufgerufen.<br />
Ich verweise nochmal auf meinem Beitrag, dass dies in einem C++-Code zeigt.<br />
Edit: Besonders die Sektion &quot;Why: STL containers&quot; ist gut für dich, da sie das gleiche Problem beschreibt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/597919</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/597919</guid><dc:creator><![CDATA[ChrissiB]]></dc:creator><pubDate>Thu, 02 Sep 2004 13:45:55 GMT</pubDate></item><item><title><![CDATA[Reply to instanz zurückgeben... on Thu, 02 Sep 2004 23:55:11 GMT]]></title><description><![CDATA[<p>class Connection<br />
{<br />
public:<br />
Connection(std::auto_ptr&lt;Socket&gt;&amp; spSocket)<br />
: spSocket_(spSocket)<br />
{<br />
}<br />
private:<br />
boost::shared_ptr&lt;Socket&gt; spSocket_;<br />
std::string Nickname;<br />
};</p>
<p>class Sock<br />
{<br />
private:<br />
typestf std::vector&lt;Connection&gt; CVector;<br />
typedef std::vector&lt;Connection&gt;iterator CVector_it;</p>
<p>CVector m_Connection;<br />
unsigned int connectionObjectcount;<br />
public:<br />
void Connection_Instanz_hinzufügen()<br />
{<br />
// meine accept methode in klasse Socket gibt mir:<br />
// auto_ptr&lt;Socket&gt; zurück...<br />
std::auto_ptr&lt;Socket&gt; spSocket = m_serverSocket.accept();<br />
Connection client(spSocket);<br />
m_Connection.push_back(client);<br />
connectionObjectcount++;<br />
}</p>
<p>void setConnectionNickname()<br />
{<br />
CVector_it it = m_Connection.begin() + ConnectionObjectcount;</p>
<p>(it).Nickname = &quot;User1&quot;;<br />
}<br />
};</p>
<p>ich weiß nicht weiter;-( .... bitte um denkanstoß!</p>
<p>cu</p>
]]></description><link>https://www.c-plusplus.net/forum/post/598363</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/598363</guid><dc:creator><![CDATA[err0r]]></dc:creator><pubDate>Thu, 02 Sep 2004 23:55:11 GMT</pubDate></item><item><title><![CDATA[Reply to instanz zurückgeben... on Fri, 03 Sep 2004 09:55:56 GMT]]></title><description><![CDATA[<p>AH.. Ich merke gerade, dass ich zuviel editiert habe und nicht einen Beitrag übrig gelassen habe. <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="😮"
    /><br />
So sieht es aus:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;vector&gt;
#include &lt;boost/shared_ptr.hpp&gt;

class X
{
public:
    void method();
};

void X::method()
{
    std::cout &lt;&lt; &quot;method()&quot; &lt;&lt; std::endl;
}

class Y
{
    typedef std::vector&lt;boost::shared_ptr&lt;X&gt; &gt; vector;
    vector vec;
public:
    void add();
    void printall();
};

void Y::add()
{
    vec.push_back(boost::shared_ptr&lt;X&gt;(new X));
}

void Y::printall()
{
    vector::iterator it = vec.begin();
    while(it != vec.end())
    {
        (*it)-&gt;method();
        ++it;
    }
}

int main()
{
    Y obj;
    obj.add();
    obj.add();
    obj.printall();
}
</code></pre>
<p>Den Rest machsts aber nun selber..</p>
]]></description><link>https://www.c-plusplus.net/forum/post/598594</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/598594</guid><dc:creator><![CDATA[ChrissiB]]></dc:creator><pubDate>Fri, 03 Sep 2004 09:55:56 GMT</pubDate></item><item><title><![CDATA[Reply to instanz zurückgeben... on Sat, 04 Sep 2004 21:48:26 GMT]]></title><description><![CDATA[<p>was ist wenn die klasse X so ausschaut?</p>
<pre><code class="language-cpp">class X
{
private:
	boost::shared_ptr&lt;Socket&gt; spSocket_;
         std::string nickname; 
public:
	Connection(std::auto_ptr&lt;Socket&gt;&amp; spSocket)
		: spSocket_(spSocket)
	{
	}
};
</code></pre>
<p>will dann sp_Socket in den vector geben...u dann nickname setzten mit iterator.... <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>cu</p>
]]></description><link>https://www.c-plusplus.net/forum/post/599703</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/599703</guid><dc:creator><![CDATA[hmm]]></dc:creator><pubDate>Sat, 04 Sep 2004 21:48:26 GMT</pubDate></item></channel></rss>