<?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[Frage zum Singleton]]></title><description><![CDATA[<p>Hallo</p>
<p>Hab schon verschiedene Implementationen gesehen, aber welche ist nun die &quot;beste&quot;?<br />
Im Moment mach ich das immer so:</p>
<pre><code class="language-cpp">class Beispiel
{
public:
    Beispiel&amp; instanz()
    {
        Beispiel inst;
        return inst;
    }
    void eineMethode();
private:
    Beispiel(){};
// plus Kopierkonstruktor und Zuweisung (op=)
};
</code></pre>
<p>Und dann Aufruf mit</p>
<pre><code class="language-cpp">Beispiel::instanz().eineMethode();
</code></pre>
<p>Geht das nicht eleganter?<br />
Gruss<br />
Jan</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/170480/frage-zum-singleton</link><generator>RSS for Node</generator><lastBuildDate>Thu, 17 Sep 2026 02:48:54 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/170480.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 16 Jan 2007 15:11:29 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Frage zum Singleton on Tue, 16 Jan 2007 15:11:29 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>Hab schon verschiedene Implementationen gesehen, aber welche ist nun die &quot;beste&quot;?<br />
Im Moment mach ich das immer so:</p>
<pre><code class="language-cpp">class Beispiel
{
public:
    Beispiel&amp; instanz()
    {
        Beispiel inst;
        return inst;
    }
    void eineMethode();
private:
    Beispiel(){};
// plus Kopierkonstruktor und Zuweisung (op=)
};
</code></pre>
<p>Und dann Aufruf mit</p>
<pre><code class="language-cpp">Beispiel::instanz().eineMethode();
</code></pre>
<p>Geht das nicht eleganter?<br />
Gruss<br />
Jan</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1210831</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1210831</guid><dc:creator><![CDATA[Jan:D]]></dc:creator><pubDate>Tue, 16 Jan 2007 15:11:29 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zum Singleton on Tue, 16 Jan 2007 15:14:50 GMT]]></title><description><![CDATA[<p>naja, das ist kein Singleton, denn man kann ja beliebig viele Instanzen der Klasse anlegen.</p>
<p>Abgesehen davon gibt instanz() eine Adresse eines lokalen Stackobjektes zurück, also crash...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1210834</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1210834</guid><dc:creator><![CDATA[fast]]></dc:creator><pubDate>Tue, 16 Jan 2007 15:14:50 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zum Singleton on Tue, 16 Jan 2007 15:22:07 GMT]]></title><description><![CDATA[<p>jeder aufruf von instanz erzeugt ein lokales objekt und gibt dessen adresse zurück. das lokale objekt inst wird aber bei verlassen der methode instanz() zerstört. viele compiler geben da auch nen warning aus.</p>
<p>konstruktor private ist richtig, um instanziierung zu verhindern.</p>
<p>ein simples singleton modell sieht ungefähr so aus:</p>
<pre><code class="language-cpp">class Singleton
{
 private:
  static Singleton* instance;
  Singleton();
 public:
  Singleton* getInstance();
};

...

Singleton* Singleton::instance = 0;

Singleton::Singleton() {}

Singleton* Singleton::getInstance()
{
 if(!instance)
  instance = new Singleton;
 return instance;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1210842</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1210842</guid><dc:creator><![CDATA[thordk]]></dc:creator><pubDate>Tue, 16 Jan 2007 15:22:07 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zum Singleton on Tue, 16 Jan 2007 15:21:33 GMT]]></title><description><![CDATA[<p>Ich depp, habs static vergessen, sorry</p>
<pre><code class="language-cpp">class Beispiel
{
public:
    static Beispiel&amp; instanz()
    {
        static Beispiel inst;
        return inst;
    }
    void eineMethode();
private:
    Beispiel(){};
// plus Kopierkonstruktor und Zuweisung (op=)
};
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1210843</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1210843</guid><dc:creator><![CDATA[Jan.D]]></dc:creator><pubDate>Tue, 16 Jan 2007 15:21:33 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zum Singleton on Tue, 16 Jan 2007 15:26:19 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>Ich bevorzuge das hier (mit Wächterklasse)<br />
<a href="http://www.oop-trainer.de/Themen/Singleton.html" rel="nofollow">http://www.oop-trainer.de/Themen/Singleton.html</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1210846</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1210846</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Tue, 16 Jan 2007 15:26:19 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zum Singleton on Tue, 16 Jan 2007 15:38:06 GMT]]></title><description><![CDATA[<p>welchen tieferen zweck erfüllt die wächterklasse? imo wird der destruktor erst bei programm termination aufgerufen, wenn sowieso dynamisch allokierter speicher freigegeben wird.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1210848</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1210848</guid><dc:creator><![CDATA[thordk]]></dc:creator><pubDate>Tue, 16 Jan 2007 15:38:06 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zum Singleton on Tue, 16 Jan 2007 15:55:37 GMT]]></title><description><![CDATA[<p>Nenn mich altmodisch, aber ich möchte genau wissen wann welcher Speicher freigegeben wird und das auch zur Not noch debuggen können.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1210862</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1210862</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Tue, 16 Jan 2007 15:55:37 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zum Singleton on Tue, 16 Jan 2007 16:07:28 GMT]]></title><description><![CDATA[<p>hehe, ok. das ergibt sinn <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/1210872</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1210872</guid><dc:creator><![CDATA[thordk]]></dc:creator><pubDate>Tue, 16 Jan 2007 16:07:28 GMT</pubDate></item></channel></rss>