<?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[Ein member Objekt für alle Instanzen einer Klasse]]></title><description><![CDATA[<p>habe eine klasse XXX, welche verschachtelt eine klasse YYY enthält.<br />
Nun will ich das nur eine Instanz vonn YYY für alle instanzen für XXX erzeugt wird.</p>
<p>beim erzeugen der ersten instanz von XXX soll eine Instanz vonn YYY erzeugt werden, werden dann noch mehrere XXX Instanzen erzeugt, soleln dise mit der referenz der bereit erzeguten YYY instanz arbeiten. Sobalt die letzte instanz von XXX gelöscht wird, soll auch YYY gelöscht werden.</p>
<p>die XXX instanzen sind nicht in einem Array vereint..</p>
<p>wie stellt ich das am besten an?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/183073/ein-member-objekt-für-alle-instanzen-einer-klasse</link><generator>RSS for Node</generator><lastBuildDate>Wed, 23 Sep 2026 05:42:10 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/183073.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 01 Jun 2007 09:52:10 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Ein member Objekt für alle Instanzen einer Klasse on Fri, 01 Jun 2007 09:52:10 GMT]]></title><description><![CDATA[<p>habe eine klasse XXX, welche verschachtelt eine klasse YYY enthält.<br />
Nun will ich das nur eine Instanz vonn YYY für alle instanzen für XXX erzeugt wird.</p>
<p>beim erzeugen der ersten instanz von XXX soll eine Instanz vonn YYY erzeugt werden, werden dann noch mehrere XXX Instanzen erzeugt, soleln dise mit der referenz der bereit erzeguten YYY instanz arbeiten. Sobalt die letzte instanz von XXX gelöscht wird, soll auch YYY gelöscht werden.</p>
<p>die XXX instanzen sind nicht in einem Array vereint..</p>
<p>wie stellt ich das am besten an?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1296457</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1296457</guid><dc:creator><![CDATA[BorisDieKlinge]]></dc:creator><pubDate>Fri, 01 Jun 2007 09:52:10 GMT</pubDate></item><item><title><![CDATA[Reply to Ein member Objekt für alle Instanzen einer Klasse on Fri, 01 Jun 2007 10:03:29 GMT]]></title><description><![CDATA[<p>Ein statisches Objekt auf YYY und zählen der Referenzen. Oder einfach ein SharedPtr verwenden! <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/1296464</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1296464</guid><dc:creator><![CDATA[David_pb]]></dc:creator><pubDate>Fri, 01 Jun 2007 10:03:29 GMT</pubDate></item><item><title><![CDATA[Reply to Ein member Objekt für alle Instanzen einer Klasse on Tue, 05 Jun 2007 07:46:56 GMT]]></title><description><![CDATA[<p>ich steh grad bischen aufm schlauch</p>
<p>ich hab bspw.:</p>
<pre><code class="language-cpp">class Data{

  static CDatabase *m_pDatabase;
  Data(){
    m_pDatabase = new CDatabase(); &lt;--- nur wenn erste instanz erzeugt wird!!
.
.
.

  }
~Data(){

delete m_pDatabase ; &lt;-- nur wenn letzt instanz von Data gelöscht wird!!

}

}
</code></pre>
<p>wie mach ich das bin grad bischen verwirrt....</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1299044</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1299044</guid><dc:creator><![CDATA[BorisDieKlinge]]></dc:creator><pubDate>Tue, 05 Jun 2007 07:46:56 GMT</pubDate></item><item><title><![CDATA[Reply to Ein member Objekt für alle Instanzen einer Klasse on Tue, 05 Jun 2007 07:51:38 GMT]]></title><description><![CDATA[<p>Wie David schon sagte - Einfach die Konstruktionen und Destruktionen mitzählen:</p>
<pre><code class="language-cpp">class Data{

  static CDatabase *m_pDatabase;
  static size_t m_instances;

  Data() {
    if (m_instances == 0)
        m_pDatabase = new CDatabase();
    ++m_instances;
  }
};

size_t Data::m_instances = 0;
</code></pre>
<p>Den Destruktor lass ich mal als Fleissübung <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/1299050</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1299050</guid><dc:creator><![CDATA[LordJaxom]]></dc:creator><pubDate>Tue, 05 Jun 2007 07:51:38 GMT</pubDate></item><item><title><![CDATA[Reply to Ein member Objekt für alle Instanzen einer Klasse on Tue, 05 Jun 2007 07:53:46 GMT]]></title><description><![CDATA[<p>ok sehr gut danke .. die Zeile :</p>
<pre><code class="language-cpp">size_t Data::m_instances=0;
</code></pre>
<p>wird beim compailiervorgang bearbeite , das heist wenn ich irgendwo in meinem code eine isntanz erzeuge muss ich size_t Data::m_instances=0 nicht nochmal aufrufen, damit er bei 0 anfängt zu zählen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1299052</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1299052</guid><dc:creator><![CDATA[BorisDieKlinge]]></dc:creator><pubDate>Tue, 05 Jun 2007 07:53:46 GMT</pubDate></item><item><title><![CDATA[Reply to Ein member Objekt für alle Instanzen einer Klasse on Tue, 05 Jun 2007 07:57:41 GMT]]></title><description><![CDATA[<p>EDIT: Zu spät.<br />
Schon lustig, dass es bei mir auch &quot;instances&quot; heisst ... ist doch recht generisch.</p>
<p>Ich lass' das trotzdem mal stehen...</p>
<p>Ist doch scohnmal ein Anfang;<br />
Du musst Dir nur noch die Information &quot;bin n. Instanz&quot; merken:</p>
<pre><code class="language-cpp">class Data{

  static CDatabase *m_pDatabase;
  static size_t instances;
  Data(){
    if(instances++ == 0) {
       m_pDatabase = new CDatabase(); &lt;--- nur wenn erste instanz erzeugt wird!!
    }
.
.
.

  }
  ~Data(){
      if(instances == 0) {
         delete m_pDatabase ; 
      }
      else --instances;
   }
};
size_t Data::instances = 0;
</code></pre>
<p>Gruß,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1299054</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1299054</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Tue, 05 Jun 2007 07:57:41 GMT</pubDate></item><item><title><![CDATA[Reply to Ein member Objekt für alle Instanzen einer Klasse on Tue, 05 Jun 2007 07:57:39 GMT]]></title><description><![CDATA[<p>jepp hab ich verstanden, nur die frage wann ich m_Instanze von der klasse initalisieruen muss? einfach in der Header?</p>
<pre><code class="language-cpp">X::m_Instanz=0; &lt;----

class X{

static size_t m_Instanz;

};
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1299056</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1299056</guid><dc:creator><![CDATA[BorisDieKlinge]]></dc:creator><pubDate>Tue, 05 Jun 2007 07:57:39 GMT</pubDate></item><item><title><![CDATA[Reply to Ein member Objekt für alle Instanzen einer Klasse on Tue, 05 Jun 2007 08:01:41 GMT]]></title><description><![CDATA[<p>BorisDieKlinge schrieb:</p>
<blockquote>
<p>ok sehr gut danke .. die Zeile :</p>
<pre><code class="language-cpp">size_t Data::m_instances=0;
</code></pre>
<p>wird beim compailiervorgang bearbeite , ...</p>
</blockquote>
<p>Ääääh ja ? nein ?<br />
Ich glaube, Du meinst was Anderes.<br />
Diese Zeile sorgt dafür, dass beim Programmstart einmal diese Initialisierung ausgeführt wird.</p>
<p>BorisDieKlinge schrieb:</p>
<blockquote>
<p>...einfach in der Header? ...</p>
</blockquote>
<p>NEIN !<br />
Diese Definition darf es nur einmal geben (One-Definition-Rule; ODR) und das geht in Headern (meistens) schief.<br />
-&gt; in ein passendes cpp-File.</p>
<p>Gruß,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1299057</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1299057</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Tue, 05 Jun 2007 08:01:41 GMT</pubDate></item><item><title><![CDATA[Reply to Ein member Objekt für alle Instanzen einer Klasse on Tue, 05 Jun 2007 08:01:40 GMT]]></title><description><![CDATA[<p>ja das weis ich...</p>
<p>nur ist meien frage ob ich die zeite am Anfang meine Programmstart aufrufen muss, oder wie hier erwähnt einfach in der Header datei?</p>
<p>Damit meine ich, sobalt das Progamm compiliert wurde, ist diese Vriabel schon auf 0??</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1299061</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1299061</guid><dc:creator><![CDATA[BorisDieKlinge]]></dc:creator><pubDate>Tue, 05 Jun 2007 08:01:40 GMT</pubDate></item><item><title><![CDATA[Reply to Ein member Objekt für alle Instanzen einer Klasse on Tue, 05 Jun 2007 08:03:58 GMT]]></title><description><![CDATA[<p>Du brauchst gar nichts selbst aufzurufen.<br />
Sobald das Programm gestartet wurde (bzw. rechtzeitig vor der ersten Benutzung) wird diese Variable &quot;mit dem Wert 0 ins Leben gerufen&quot;.</p>
<p>Gruß,</p>
<p>Simon2.</p>
<p>P.S.: Du denkst daran, dass statics Probleme mit Multithreading haben, ja ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1299064</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1299064</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Tue, 05 Jun 2007 08:03:58 GMT</pubDate></item><item><title><![CDATA[Reply to Ein member Objekt für alle Instanzen einer Klasse on Tue, 05 Jun 2007 08:06:17 GMT]]></title><description><![CDATA[<p>jepp danke das wollte ich wissen.. ja die klasse wird später nich in threads implementiert:)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1299067</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1299067</guid><dc:creator><![CDATA[BorisDieKlinge]]></dc:creator><pubDate>Tue, 05 Jun 2007 08:06:17 GMT</pubDate></item><item><title><![CDATA[Reply to Ein member Objekt für alle Instanzen einer Klasse on Tue, 05 Jun 2007 08:49:48 GMT]]></title><description><![CDATA[<p>Was meinst du mit &quot;in threads implementier&quot;. Diese andernanderreihung von Worten gibt keinen Sinn.</p>
<p>Es geht darum die Klasse von mehreren Threads verwendet wird.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1299104</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1299104</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Tue, 05 Jun 2007 08:49:48 GMT</pubDate></item></channel></rss>