<?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 Pattern]]></title><description><![CDATA[<p>Moin.</p>
<p>Ich habe eine Frage zum Singleton Pattern wie es bei Wikipedia beschrieben steht:</p>
<pre><code class="language-cpp">class Singleton
   {
   private:
      static Singleton* instance;
      Singleton() {}
      Singleton(const Singleton&amp;) {}
      ~Singleton() {}
   public:
      static Singleton&amp; getInstance();
      static void destroy();
   };

   Singleton* Singleton::instance = 0;

   Singleton&amp; Singleton::getInstance()
   {
      if ( !instance )
         instance = new Singleton();
      return *instance;
   }

   void Singleton::destroy()
   {
      if ( instance )
         delete instance;
      instance = 0;
   }
</code></pre>
<p>Wieso ist der Typ des Rückgabewerts von getInstance Singleton&amp; und 'instance' dereferenziert?</p>
<p>Ich hätte jetzt den Zeiger auf das Objekt zurückgeliefert, also Typ des Rückgabewert Singleton*.</p>
<p>Damit könnte man dann doch wunderbar arbeiten, oder nicht? Wieso wird das so gemacht wie es bei Wikipedia steht?</p>
<p>Vielen Dank</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/296836/frage-zum-singleton-pattern</link><generator>RSS for Node</generator><lastBuildDate>Fri, 14 Aug 2026 17:07:54 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/296836.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 13 Dec 2011 12:26:52 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Frage zum Singleton Pattern on Tue, 13 Dec 2011 12:26:52 GMT]]></title><description><![CDATA[<p>Moin.</p>
<p>Ich habe eine Frage zum Singleton Pattern wie es bei Wikipedia beschrieben steht:</p>
<pre><code class="language-cpp">class Singleton
   {
   private:
      static Singleton* instance;
      Singleton() {}
      Singleton(const Singleton&amp;) {}
      ~Singleton() {}
   public:
      static Singleton&amp; getInstance();
      static void destroy();
   };

   Singleton* Singleton::instance = 0;

   Singleton&amp; Singleton::getInstance()
   {
      if ( !instance )
         instance = new Singleton();
      return *instance;
   }

   void Singleton::destroy()
   {
      if ( instance )
         delete instance;
      instance = 0;
   }
</code></pre>
<p>Wieso ist der Typ des Rückgabewerts von getInstance Singleton&amp; und 'instance' dereferenziert?</p>
<p>Ich hätte jetzt den Zeiger auf das Objekt zurückgeliefert, also Typ des Rückgabewert Singleton*.</p>
<p>Damit könnte man dann doch wunderbar arbeiten, oder nicht? Wieso wird das so gemacht wie es bei Wikipedia steht?</p>
<p>Vielen Dank</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2156477</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2156477</guid><dc:creator><![CDATA[ViktorII]]></dc:creator><pubDate>Tue, 13 Dec 2011 12:26:52 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zum Singleton Pattern on Tue, 13 Dec 2011 12:30:31 GMT]]></title><description><![CDATA[<p>Warum sollte man?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2156480</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2156480</guid><dc:creator><![CDATA[314159265358979]]></dc:creator><pubDate>Tue, 13 Dec 2011 12:30:31 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zum Singleton Pattern on Tue, 13 Dec 2011 12:34:35 GMT]]></title><description><![CDATA[<p>314159265358979 schrieb:</p>
<blockquote>
<p>Warum sollte man?</p>
</blockquote>
<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /><br />
Was willst du denn mit einem Zeiger? Ihn auf ein anderes Objekt zeigen lassen? Ne, warte mal..</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2156483</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2156483</guid><dc:creator><![CDATA[cooky451]]></dc:creator><pubDate>Tue, 13 Dec 2011 12:34:35 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zum Singleton Pattern on Tue, 13 Dec 2011 14:06:11 GMT]]></title><description><![CDATA[<p>Vielen Dank für ne Antwort ohne Untertöne <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/25760">@cooky451</a><br />
Okay ich warte...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2156540</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2156540</guid><dc:creator><![CDATA[ViktorII]]></dc:creator><pubDate>Tue, 13 Dec 2011 14:06:11 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zum Singleton Pattern on Tue, 13 Dec 2011 22:18:38 GMT]]></title><description><![CDATA[<p>Ich glaube, du hast cooky nicht richtig verstanden.</p>
<p>Zeiger kann man nachträglich auf andere Objekte des gleichen Typs umlenken.</p>
<p>also</p>
<pre><code class="language-cpp">Foo a, b;
Foo * p = &amp;a; // Initialisierung
p = &amp;b; // Hier wird &quot;umgelenkt&quot;
</code></pre>
<p>Das ergibt aber bei einem Singleton keinen Sinn,<br />
da es ja nur das eine Singleton gibt.<br />
Deshalb das &quot;Ne, warte mal...&quot; <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>
<p>Jetzt ist aber intern eine Referenz nichts anderes als ein Zeiger.<br />
Mit 3 Unterschieden:<br />
1. Man kann Referenzen nachträglich nicht mehr umlenken (ist ja auch nicht nötig)<br />
2. Keine Zeigerarithmetik<br />
3. Die Syntax ist angenehmer (Geschmackssache)</p>
<pre><code class="language-cpp">Foo &amp; foo = Foo::instance();
foo.bar();

// vs.

Foo * foo = Foo::instance();
foo-&gt;bar();
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2156552</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2156552</guid><dc:creator><![CDATA[DrakoXP]]></dc:creator><pubDate>Tue, 13 Dec 2011 22:18:38 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zum Singleton Pattern on Tue, 13 Dec 2011 14:45:52 GMT]]></title><description><![CDATA[<p>ViktorII schrieb:</p>
<blockquote>
<p>Damit könnte man dann doch wunderbar arbeiten, oder nicht?</p>
</blockquote>
<p>Ja</p>
<p>ViktorII schrieb:</p>
<blockquote>
<p>Wieso wird das so gemacht wie es bei Wikipedia steht?</p>
</blockquote>
<p>Weil es damit noch bequemer wird.</p>
<p>Abgesehen davon solltest du Singleton besser nicht verwenden. Grund: Siehe ein beliebiger der tausenden Threads zum Thema hier im Forum <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/2156555</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2156555</guid><dc:creator><![CDATA[dot]]></dc:creator><pubDate>Tue, 13 Dec 2011 14:45:52 GMT</pubDate></item><item><title><![CDATA[Reply to Frage zum Singleton Pattern on Tue, 13 Dec 2011 21:53:59 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/10459">@DrakoXP</a>: Ja klar, Du hast recht. Jetzt habe ich es verstanden. Hatte den &amp; Operator für Referenzen nicht mehr auf dem Schirm. Dachte erste das dort eine Kopie erstellt wird, was ja natürlich keinen Sinn macht <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="🙂"
    /></p>
<p>Vielen Dank für Deine ausführliche Erklärung <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /> und auch Dank an dot</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2156697</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2156697</guid><dc:creator><![CDATA[ViktorII]]></dc:creator><pubDate>Tue, 13 Dec 2011 21:53:59 GMT</pubDate></item></channel></rss>