<?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[singelton und destruktor?]]></title><description><![CDATA[<p>Habe hier ein auszug ein Singelton klasse:</p>
<pre><code class="language-cpp">class Singleton
{
   public:
     static Singleton* exemplar();

   protected:
     Singleton() {}

   private:
     static Singleton *instanz;
};

Singleton* Singleton::instanz = 0;

Singleton* Singleton::exemplar()
{
  if( instanz == 0 )
    instanz = new Singleton();
  return instanz;
}
</code></pre>
<p>über die statischer funktion exemplar() bekomm ich ja ein zeiger auf das singelton objekt... schön und gut, aber muss ich jetzt das objekt auch extra deleten? quasie ne DEstroyExemplar funktion mache? oder gibts andere möglichkeiten?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/213884/singelton-und-destruktor</link><generator>RSS for Node</generator><lastBuildDate>Tue, 13 Oct 2026 20:52:34 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/213884.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 23 May 2008 06:07:51 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to singelton und destruktor? on Fri, 23 May 2008 06:07:51 GMT]]></title><description><![CDATA[<p>Habe hier ein auszug ein Singelton klasse:</p>
<pre><code class="language-cpp">class Singleton
{
   public:
     static Singleton* exemplar();

   protected:
     Singleton() {}

   private:
     static Singleton *instanz;
};

Singleton* Singleton::instanz = 0;

Singleton* Singleton::exemplar()
{
  if( instanz == 0 )
    instanz = new Singleton();
  return instanz;
}
</code></pre>
<p>über die statischer funktion exemplar() bekomm ich ja ein zeiger auf das singelton objekt... schön und gut, aber muss ich jetzt das objekt auch extra deleten? quasie ne DEstroyExemplar funktion mache? oder gibts andere möglichkeiten?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1514804</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1514804</guid><dc:creator><![CDATA[BorisDieKlinge]]></dc:creator><pubDate>Fri, 23 May 2008 06:07:51 GMT</pubDate></item><item><title><![CDATA[Reply to singelton und destruktor? on Fri, 23 May 2008 06:13:34 GMT]]></title><description><![CDATA[<p>wozu?<br />
ein singleton wird mit dem beenden des programms destruiert ...</p>
<p>das erzeugt zwar ein memory-leak, was dich aber nicht stören sollte,<br />
da das programm dann eh beendet ist (OS räumt auf, da haste deinen speicher ja<br />
auch her)</p>
<p>wenn es dich doch stört (valgrind gibt dann zB fehlermeldungen, gibt es noch<br />
ein singleton mit referencen, dort tritt das &quot;quasi-leck&quot; dann nichtmehr auf)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1514805</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1514805</guid><dc:creator><![CDATA[Treb]]></dc:creator><pubDate>Fri, 23 May 2008 06:13:34 GMT</pubDate></item><item><title><![CDATA[Reply to singelton und destruktor? on Fri, 23 May 2008 06:21:59 GMT]]></title><description><![CDATA[<p>Wie wär's mit einem statischen &quot;Aufräumer&quot; ?</p>
<pre><code class="language-cpp">struct Aufräumer;
class Singleton
{
// ... Dein Code ...

// zusätzlich:
   protected:
     ~Singleton() {} // Nicht unwichtig ! Schließlich soll kein &quot;Nutzer&quot; das Teil abräumen können
   friend Aufräumer;
};

struct Aufräumer {
   ~Aufräumer() { delete Singleton::instanz; }
}

static Aufräumer a;
</code></pre>
<p>Bei static Objekten sorgte IIRC der Compiler dafür, dass sie ganz am Ende abgeräumt werden (wenn überhaupt unwinding stattfindet).</p>
<p>Gruß,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1514808</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1514808</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Fri, 23 May 2008 06:21:59 GMT</pubDate></item><item><title><![CDATA[Reply to singelton und destruktor? on Fri, 23 May 2008 06:22:46 GMT]]></title><description><![CDATA[<p>Treb schrieb:</p>
<blockquote>
<p>OS räumt auf</p>
</blockquote>
<p>da wär ich mir nicht so sicher...</p>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/13742">@BorisDieKlinge</a>:</p>
<pre><code class="language-cpp">//...
public:
  ~Singleton() {
      if(instanz) {
          delete instanz;
          instanz = 0;
      }
   }
//...
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1514809</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1514809</guid><dc:creator><![CDATA[Xantus_notloggedin]]></dc:creator><pubDate>Fri, 23 May 2008 06:22:46 GMT</pubDate></item><item><title><![CDATA[Reply to singelton und destruktor? on Fri, 23 May 2008 06:23:02 GMT]]></title><description><![CDATA[<blockquote>
<p>schön und gut, aber muss ich jetzt das objekt auch extra deleten?</p>
</blockquote>
<p>Hast du es mit new erstellt?<br />
Sieht ganz so aus - also wirst du es auch löschen müssen...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1514810</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1514810</guid><dc:creator><![CDATA[blablubb]]></dc:creator><pubDate>Fri, 23 May 2008 06:23:02 GMT</pubDate></item><item><title><![CDATA[Reply to singelton und destruktor? on Fri, 23 May 2008 06:50:06 GMT]]></title><description><![CDATA[<p>Xantus_notloggedin schrieb:</p>
<blockquote>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/13742">@BorisDieKlinge</a>:</p>
<pre><code class="language-cpp">//...
public:
  ~Singleton() {
      if(instanz) {
          delete instanz;
          instanz = 0;
      }
   }
//...
</code></pre>
</blockquote>
<p>Dieser Destruktor wird nicht automatisch aufgerufen werden.<br />
Würde man ihn aufrufen, führte das nur zu mehrfachem delete (in diesem Falle wahrscheinlich beobachtbar als Stacküberlauf wegen Endlosrekursion). Letzteres könnte man noch umgehen</p>
<pre><code class="language-cpp">if(instanz) {
          Singleton* p = instanz;
          instanz = 0;
          delete p;
      }
</code></pre>
<p>(allerdings immer noch doppelte Zerstörung) und es würde aber eben trotzdem nicht automatisch aufgeräumt werden, denn automatisch aufgeräumt werden statische Objekte - statisch ist in unserem Falle aber der zeiger und nicht das Klassenobjekt selbst.<br />
Anzumerken wäre noch, dass die Zerstörung und Freigabe von Objekten nicht explizit erforderlich - wenn und solange man sich nicht auf die Seiteneffekte dieser Zerstörung und Freigabe verlässt. Es ist also nicht per se undefiniert, den Singleton einfach leben zu lassen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1514825</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1514825</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Fri, 23 May 2008 06:50:06 GMT</pubDate></item><item><title><![CDATA[Reply to singelton und destruktor? on Fri, 23 May 2008 07:07:46 GMT]]></title><description><![CDATA[<blockquote>
<p>wenn es dich doch stört (valgrind gibt dann zB fehlermeldungen, gibt es noch<br />
ein singleton mit referencen, dort tritt das &quot;quasi-leck&quot; dann nichtmehr auf)</p>
</blockquote>
<p>wie würde ein singelton mit objektrefenrz ausehen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1514840</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1514840</guid><dc:creator><![CDATA[BorisDieKlinge]]></dc:creator><pubDate>Fri, 23 May 2008 07:07:46 GMT</pubDate></item><item><title><![CDATA[Reply to singelton und destruktor? on Fri, 23 May 2008 07:14:28 GMT]]></title><description><![CDATA[<p>Xantus_notloggedin schrieb:</p>
<blockquote>
<p>Treb schrieb:</p>
<blockquote>
<p>OS räumt auf</p>
</blockquote>
<p>da wär ich mir nicht so sicher...</p>
</blockquote>
<p>Windows macht das z.B.</p>
<p>Xantus_notloggedin schrieb:</p>
<blockquote>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/13742">@BorisDieKlinge</a>:</p>
<pre><code class="language-cpp">//...
public:
  ~Singleton() {
      if(instanz) {
          delete instanz;
          instanz = 0;
      }
   }
//...
</code></pre>
</blockquote>
<p>Sehr clever, ja... Nur wird der Destruktor halt nicht aufgerufen.<br />
Eine Lösung wäre folgende:</p>
<pre><code class="language-cpp">class Singleton
{
public:
   static Singleton* exemplar()
   {
	   if( instanz == 0 )
	   {
		instanz = new Singleton();
		atexit( &amp;Singleton::destroy );
	   }
	   return instanz;
   }

   static void destroy()
   {
	delete instanz;
   }

   protected:
     Singleton() {}

   private:
     static Singleton *instanz;
};

Singleton* Singleton::instanz = 0;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1514845</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1514845</guid><dc:creator><![CDATA[David_pb]]></dc:creator><pubDate>Fri, 23 May 2008 07:14:28 GMT</pubDate></item><item><title><![CDATA[Reply to singelton und destruktor? on Fri, 23 May 2008 07:27:43 GMT]]></title><description><![CDATA[<p>ich benutzt es meistens so in der art, ist praktisch da man dann nur von Singleton ableiten muss und dann ne recht kleine uebersichtliche klasse hat - man muss nur sofern man das singleton verwendete - dispose aufrufen um den speicher frei zu geben,<br />
achso und man kann gut funktionsueberladungen erzwingen #gg<br />
Singleton.h</p>
<pre><code class="language-cpp">template &lt;class T&gt;
class Singleton
{
private:
	static T* _instance;
protected:
	Singleton(){}
public:
	static T* instance()
	{
		if(!_instance)
			_instance = new T();
		return _instance;
	}
	static void dispose()
	{
		delete _instance;
		_instance = 0;
	}
	virtual ~Singleton()
	{
		_instance = 0;
	}
};
template &lt;class T&gt;
T* Singleton&lt;T&gt;::_instance = 0;
</code></pre>
<p>Using.h</p>
<pre><code class="language-cpp">class Using : public Singleton&lt;Using&gt;
{
private:
	friend class Singleton&lt;Using&gt;;

protected:
	virtual ~Using(void)
	{
		close();
	}
public:
	static Using *instance()
	{
		return Singleton&lt;Using&gt;::instance();
	}
};
</code></pre>
<p>.<br />
.<br />
Using::instance()-&gt;func();<br />
Using::instance()-&gt;dispose();</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1514853</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1514853</guid><dc:creator><![CDATA[EXDW]]></dc:creator><pubDate>Fri, 23 May 2008 07:27:43 GMT</pubDate></item><item><title><![CDATA[Reply to singelton und destruktor? on Fri, 23 May 2008 07:31:34 GMT]]></title><description><![CDATA[<p>Wann wird die atexit funktion aufrufen?</p>
<pre><code>atexit( &amp;Singleton::destroy );
</code></pre>
<p>??</p>
<p>Was ist mit dem:</p>
<pre><code class="language-cpp">static void Singelton::Destroy(){
  if( instanz) delete instanz;
}

{
Singelton *p= exemplar();
.
.
.
.
p-&gt;Destroy();

}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1514854</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1514854</guid><dc:creator><![CDATA[BorisDieKlinge]]></dc:creator><pubDate>Fri, 23 May 2008 07:31:34 GMT</pubDate></item><item><title><![CDATA[Reply to singelton und destruktor? on Fri, 23 May 2008 07:36:44 GMT]]></title><description><![CDATA[<p>Okay, welchen Sinn hat das mit dem Zeiger eigentlich? Wieso verwendest Du nicht folgenden Code:</p>
<pre><code class="language-cpp">static singleton&amp; instance() {
    static singleton the_instance;
    return the_instance;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1514857</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1514857</guid><dc:creator><![CDATA[Konrad Rudolph]]></dc:creator><pubDate>Fri, 23 May 2008 07:36:44 GMT</pubDate></item><item><title><![CDATA[Reply to singelton und destruktor? on Fri, 23 May 2008 07:45:29 GMT]]></title><description><![CDATA[<p>Viele wege füheren nach rom.. aber genau diesen hab ich gesucht^^<br />
hätte ich auch selber drauf kommen können <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_down"
      title=":-1:"
      alt="👎"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1514866</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1514866</guid><dc:creator><![CDATA[BorisDieKlinge]]></dc:creator><pubDate>Fri, 23 May 2008 07:45:29 GMT</pubDate></item><item><title><![CDATA[Reply to singelton und destruktor? on Fri, 23 May 2008 08:04:23 GMT]]></title><description><![CDATA[<p>Wenn man selbst Kontrolle über die Lebenszeit von Singletons haben will, kommt man fast nicht darum, die Persistenz mit atexit() selbst zu kontrollieren.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1514887</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1514887</guid><dc:creator><![CDATA[Tachyon]]></dc:creator><pubDate>Fri, 23 May 2008 08:04:23 GMT</pubDate></item><item><title><![CDATA[Reply to singelton und destruktor? on Fri, 23 May 2008 08:42:39 GMT]]></title><description><![CDATA[<p>Tachyon schrieb:</p>
<blockquote>
<p>Wenn man selbst Kontrolle über die Lebenszeit von Singletons haben will, kommt man fast nicht darum, die Persistenz mit atexit() selbst zu kontrollieren.</p>
</blockquote>
<p>äh ... was spricht gegen meinen &quot;Abräumer&quot; ?</p>
<p>Konrad Rudolph schrieb:</p>
<blockquote>
<p>Okay, welchen Sinn hat das mit dem Zeiger eigentlich? Wieso verwendest Du nicht folgenden Code:</p>
<pre><code class="language-cpp">static singleton&amp; instance() {
    static singleton the_instance;
    return the_instance;
}
</code></pre>
</blockquote>
<p>Das geht bestimmt oftmals gut - aber &quot;lazy creation&quot; kann man damit halt nicht machen (nur, für den Fall, dass man es braucht).<br />
und wie sieht's aus, wenn man ein parametrisiertes instance() anbieten möchte ? (wobei das Schwierigkeiten beim 2. Aufruf bereitet)</p>
<p>Gruß,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1514914</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1514914</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Fri, 23 May 2008 08:42:39 GMT</pubDate></item><item><title><![CDATA[Reply to singelton und destruktor? on Fri, 23 May 2008 08:41:28 GMT]]></title><description><![CDATA[<p>, dass man dann nicht selbst die kontrolle hat?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1514918</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1514918</guid><dc:creator><![CDATA[hmm vlt.]]></dc:creator><pubDate>Fri, 23 May 2008 08:41:28 GMT</pubDate></item><item><title><![CDATA[Reply to singelton und destruktor? on Fri, 23 May 2008 08:41:54 GMT]]></title><description><![CDATA[<p>Simon2 schrieb:</p>
<blockquote>
<p>Tachyon schrieb:</p>
<blockquote>
<p>Wenn man selbst Kontrolle über die Lebenszeit von Singletons haben will, kommt man fast nicht darum, die Persistenz mit atexit() selbst zu kontrollieren.</p>
</blockquote>
<p>äh ... was spricht gegen meinen &quot;Abräumer&quot; ?</p>
<p>Gruß,</p>
<p>Simon2.</p>
</blockquote>
<p>Das Dead-Refference-Problem. Es kann sein, dass der Destruktor von Deinem Aufräumer getriggert wird, dass Singleton aber noch benötigt wird.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1514920</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1514920</guid><dc:creator><![CDATA[Tachyon]]></dc:creator><pubDate>Fri, 23 May 2008 08:41:54 GMT</pubDate></item><item><title><![CDATA[Reply to singelton und destruktor? on Fri, 23 May 2008 08:46:25 GMT]]></title><description><![CDATA[<p>hmm vlt. schrieb:</p>
<blockquote>
<p>, dass man dann nicht selbst die kontrolle hat?</p>
</blockquote>
<p><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="😕"
    /><br />
DAS ist ja gerade der Vorteil von RAII: Kontrolle an die Runtime abgeben, damit man es selbst nicht vergessen kann.</p>
<p>Wer unbedingt &quot;die Kontrolle behalten&quot; will, sollte Assembler programmieren...<br />
<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>Gruß,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1514923</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1514923</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Fri, 23 May 2008 08:46:25 GMT</pubDate></item><item><title><![CDATA[Reply to singelton und destruktor? on Fri, 23 May 2008 08:49:12 GMT]]></title><description><![CDATA[<p>Tachyon hats schon gesagt. Da braucht man kein Assembler.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1514926</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1514926</guid><dc:creator><![CDATA[hmm vlt.]]></dc:creator><pubDate>Fri, 23 May 2008 08:49:12 GMT</pubDate></item><item><title><![CDATA[Reply to singelton und destruktor? on Fri, 23 May 2008 08:50:19 GMT]]></title><description><![CDATA[<p>Tachyon schrieb:</p>
<blockquote>
<p>...Das Dead-Refference-Problem...</p>
</blockquote>
<p>wohlklingender Name - hatte ich noch nicht gehört. <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>Natürlich kann man sich da in Abhängigkeiten verheddern (von denen mir allerdings momentan nur welche einfallen, die unter &quot;schlechtes Design&quot; fallen).<br />
Aber das geht Dir mit atexit() nicht anders: Auch hier muss jede Form von Abhängigkeit berücksichtigt werden ... ob ich das nun im &quot;Abräumer&quot; mache oder in atexit(), sollte IMHO keinen großen Unterschied machen.<br />
Da hat der Abräumer noch den Vorteil, dass ich auf den ja zur Laufzeit auch noch Zugriff habe, so dass Objekte ihre Abhängigkeiten da hinterlegen können.</p>
<p>Gruß,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1514929</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1514929</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Fri, 23 May 2008 08:50:19 GMT</pubDate></item><item><title><![CDATA[Reply to singelton und destruktor? on Fri, 23 May 2008 08:53:10 GMT]]></title><description><![CDATA[<p>hmm vlt. schrieb:</p>
<blockquote>
<p>Tachyon hats schon gesagt. Da braucht man kein Assembler.</p>
</blockquote>
<p>Habe ich behauptet, dass man zur Lösung dieses Problems Assembler braucht ?<br />
Übrigens: Wenn Du keine blöden Antworten haben möchtest, solltest Du evtl. dazu übergehen, Deine Standpunkte verständlich darzulegen.<br />
Wen jemand in &quot;Ein-Satz-Statements&quot; kommuniziert, ist nicht immer die Umwelt schuld, wenn sie einen mißversteht.</p>
<p>Gruß,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1514931</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1514931</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Fri, 23 May 2008 08:53:10 GMT</pubDate></item><item><title><![CDATA[Reply to singelton und destruktor? on Fri, 23 May 2008 08:57:15 GMT]]></title><description><![CDATA[<p>Also Andrei Alexandrescu schlägt in &quot;Modern C++ Design: Generic Programming and Design Patterns Applied&quot; vor, in Fällen, wo das Singlton u.U. von z.B. anderen statitischen Objekten zum Aufräumen oder für andere Zwecke benötigt wird vor, entweder die Persistenz mit Prioritäten zu sichern, oder das Singleton wiederauferstehend gesatalten. Also es so zu bauen, dass es zwar zu jeder beliebigen Zeit zerstört werden kann, es aber wieder aufersteht, wenn es nach seiner Zerstörung doch noch einmal benötigt wird. Als Beispiel nimmet ein ein Logging-Singleton wo fehler von anderen Singletons beim Abräumen geloggt werden.<br />
Insgesamt gibt es aber kein &quot;Universal-Singleton&quot;, mit dem alle Probleme auf einmal gelöst werden können.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1514938</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1514938</guid><dc:creator><![CDATA[Tachyon]]></dc:creator><pubDate>Fri, 23 May 2008 08:57:15 GMT</pubDate></item><item><title><![CDATA[Reply to singelton und destruktor? on Fri, 23 May 2008 08:57:21 GMT]]></title><description><![CDATA[<p>Simon2 schrieb:</p>
<blockquote>
<p>äh ... was spricht gegen meinen &quot;Abräumer&quot; ?</p>
</blockquote>
<p>Der ist natürlich als eigenes Micro-Design Pattern klasse.</p>
<blockquote>
<p>Konrad Rudolph schrieb:</p>
<blockquote>
<p>Okay, welchen Sinn hat das mit dem Zeiger eigentlich? Wieso verwendest Du nicht folgenden Code:</p>
<pre><code class="language-cpp">static singleton&amp; instance() {
    static singleton the_instance;
    return the_instance;
}
</code></pre>
</blockquote>
<p>Das geht bestimmt oftmals gut - aber &quot;lazy creation&quot; kann man damit halt nicht machen (nur, für den Fall, dass man es braucht).</p>
</blockquote>
<p>Meine Variante *ist* lazy. Insbesondere wird nie eine Instanz von 'singleton' erstellt, es sei denn, man ruft 'instance' auf.</p>
<blockquote>
<p>und wie sieht's aus, wenn man ein parametrisiertes instance() anbieten möchte ? (wobei das Schwierigkeiten beim 2. Aufruf bereitet)</p>
</blockquote>
<p>Stimmt, das geht dann nicht mehr. In diesem Fall hat man aber eh keinen reinen Singleton mehr und benötigt irgendeine Art Factory.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1514939</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1514939</guid><dc:creator><![CDATA[Konrad Rudolph]]></dc:creator><pubDate>Fri, 23 May 2008 08:57:21 GMT</pubDate></item><item><title><![CDATA[Reply to singelton und destruktor? on Fri, 23 May 2008 08:58:13 GMT]]></title><description><![CDATA[<p>Simon2 schrieb:</p>
<blockquote>
<p>Das geht bestimmt oftmals gut - aber &quot;lazy creation&quot; kann man damit halt nicht machen (nur, für den Fall, dass man es braucht).<br />
und wie sieht's aus, wenn man ein parametrisiertes instance() anbieten möchte ? (wobei das Schwierigkeiten beim 2. Aufruf bereitet)</p>
</blockquote>
<p>Wie &quot;Lazy&quot; soll denn das Erzeugen noch werden? <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>
]]></description><link>https://www.c-plusplus.net/forum/post/1514940</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1514940</guid><dc:creator><![CDATA[David_pb]]></dc:creator><pubDate>Fri, 23 May 2008 08:58:13 GMT</pubDate></item><item><title><![CDATA[Reply to singelton und destruktor? on Fri, 23 May 2008 09:03:50 GMT]]></title><description><![CDATA[<p>Simon2 schrieb:</p>
<blockquote>
<p>hmm vlt. schrieb:</p>
<blockquote>
<p>Tachyon hats schon gesagt. Da braucht man kein Assembler.</p>
</blockquote>
<p>Habe ich behauptet, dass man zur Lösung dieses Problems Assembler braucht ?<br />
Übrigens: Wenn Du keine blöden Antworten haben möchtest, solltest Du evtl. dazu übergehen, Deine Standpunkte verständlich darzulegen.<br />
Wen jemand in &quot;Ein-Satz-Statements&quot; kommuniziert, ist nicht immer die Umwelt schuld, wenn sie einen mißversteht.</p>
</blockquote>
<p>Warum hast du denn überhaupt Assembler erwähnt? Das hat schon da keinen Sinn gemacht, wo du es gepostet hast, weil es nix mit dem Thema zu tun hat, sondern einfach nur <a href="http://de.wikipedia.org/wiki/Totschlagargument" rel="nofollow">danach</a> aussieht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1514947</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1514947</guid><dc:creator><![CDATA[hmm vlt.]]></dc:creator><pubDate>Fri, 23 May 2008 09:03:50 GMT</pubDate></item><item><title><![CDATA[Reply to singelton und destruktor? on Fri, 23 May 2008 09:38:11 GMT]]></title><description><![CDATA[<p>hmm vlt. schrieb:</p>
<blockquote>
<p>...Warum hast du denn überhaupt Assembler erwähnt? ...</p>
</blockquote>
<p>Nun, erstmal war es &quot;augenwinkernd&quot; (habe ich ja sogar mit einem passenden Smilie).<br />
Und zum zweiten hattest Du als einziges Argument gegen meinen Vorschlag einen Mangel an Kontrolle gebracht. Mit der Erwähnung von Assembler (als Beispiel absurder Übertreibung) wollte ich das Augenmerk darauf lenken, dass &quot;Kontrolle haben wollen&quot; nicht das einzige Kriterium für oder gegen eine Programmiertechnik sein kann.<br />
(eben weil jemandem, für den das das einzige Kriterium wäre, höchstens Assembler übrig bliebe ...)<br />
Da allerdings von Dir kein anderes erwähnt wurde, hoffte ich da auch mehr (ein Wunsch, der allerdings bis jetzt unerfüllt ist).</p>
<p>Ich hoffe, das ist jetzt klarer geworden und wir können uns wieder der eigentlichen Frage zuwenden.</p>
<p>Gruß,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1514983</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1514983</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Fri, 23 May 2008 09:38:11 GMT</pubDate></item><item><title><![CDATA[Reply to singelton und destruktor? on Fri, 23 May 2008 09:39:11 GMT]]></title><description><![CDATA[<p>Konrad Rudolph schrieb:</p>
<blockquote>
<p>...<br />
Meine Variante *ist* lazy. Insbesondere wird nie eine Instanz von 'singleton' erstellt, es sei denn, man ruft 'instance' auf....</p>
</blockquote>
<p>Stimmt natürlich ! Mein Fehler !<br />
Ist Deine Variante eigentlich bzgl. der von Tachyon angesprochenen Abhängigkeiten zuverlässiger ?<br />
Eigentlich auch nicht, oder ?</p>
<p>Konrad Rudolph schrieb:</p>
<blockquote>
<p>...</p>
<blockquote>
<p>und wie sieht's aus, wenn man ein parametrisiertes instance() anbieten möchte ? (wobei das Schwierigkeiten beim 2. Aufruf bereitet)</p>
</blockquote>
<p>Stimmt, das geht dann nicht mehr. In diesem Fall hat man aber eh keinen reinen Singleton mehr und benötigt irgendeine Art Factory.</p>
</blockquote>
<p>Ja - ich war ja von dem Argument sowieso nicht sooo überzeugt.</p>
<p>Gruß,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1514989</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1514989</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Fri, 23 May 2008 09:39:11 GMT</pubDate></item></channel></rss>