<?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[Singleton als Template]]></title><description><![CDATA[<p>Ich bin auf der Suche nach einer einfachen Möglichkeit Klassen als Singleton bereit zu stellen.</p>
<p>Folgender Ansatz als Template:</p>
<pre><code class="language-cpp">template&lt;typename T&gt;class Singleton{

    private:
        Singleton(const T&amp; type) {}
        const T&amp; operator=(const T&amp; type) {}

    protected:
        Singleton();
        ~Singleton();

    public:
        static T&amp; getInstance()
        {
           static T type;
           return type;
        }
};
</code></pre>
<p>Nun meine Fragen dazu:</p>
<p>Gibt es eine einfache Möglichkeit folgendes zu realisieren:</p>
<pre><code class="language-cpp">void foo()
{
    if (error)
        Logfile::getInstance.log(&quot;some message&quot;); //erwünscht

}

void bar()
{
    if (error)
        Singleton&lt;Logfile&gt;::getInstance.log(&quot;some message&quot;); //nicht erwünscht

}
</code></pre>
<p>Darüber hinaus bin ich auf der Suche nach einer einfachen Möglichkeit ein Singleton dahingehend zu überwachen, dass ich weiß wann es zerstört wird. Zur Zeit wird es imho durch static am Anfang meines Programms erstellt und erst am Ende wieder zerstört. Oder wird es erst beim ersten Aufruf erzeugt und wie sieht es mit der Abbaureihenfolge aus?</p>
<p>Danke!</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/130738/singleton-als-template</link><generator>RSS for Node</generator><lastBuildDate>Wed, 26 Aug 2026 20:07:10 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/130738.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 26 Dec 2005 20:06:59 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Singleton als Template on Mon, 26 Dec 2005 20:06:59 GMT]]></title><description><![CDATA[<p>Ich bin auf der Suche nach einer einfachen Möglichkeit Klassen als Singleton bereit zu stellen.</p>
<p>Folgender Ansatz als Template:</p>
<pre><code class="language-cpp">template&lt;typename T&gt;class Singleton{

    private:
        Singleton(const T&amp; type) {}
        const T&amp; operator=(const T&amp; type) {}

    protected:
        Singleton();
        ~Singleton();

    public:
        static T&amp; getInstance()
        {
           static T type;
           return type;
        }
};
</code></pre>
<p>Nun meine Fragen dazu:</p>
<p>Gibt es eine einfache Möglichkeit folgendes zu realisieren:</p>
<pre><code class="language-cpp">void foo()
{
    if (error)
        Logfile::getInstance.log(&quot;some message&quot;); //erwünscht

}

void bar()
{
    if (error)
        Singleton&lt;Logfile&gt;::getInstance.log(&quot;some message&quot;); //nicht erwünscht

}
</code></pre>
<p>Darüber hinaus bin ich auf der Suche nach einer einfachen Möglichkeit ein Singleton dahingehend zu überwachen, dass ich weiß wann es zerstört wird. Zur Zeit wird es imho durch static am Anfang meines Programms erstellt und erst am Ende wieder zerstört. Oder wird es erst beim ersten Aufruf erzeugt und wie sieht es mit der Abbaureihenfolge aus?</p>
<p>Danke!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/950397</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/950397</guid><dc:creator><![CDATA[Inliner]]></dc:creator><pubDate>Mon, 26 Dec 2005 20:06:59 GMT</pubDate></item><item><title><![CDATA[Reply to Singleton als Template on Mon, 26 Dec 2005 20:52:02 GMT]]></title><description><![CDATA[<p>Du musst deine Singleton Klasse dann eben von der Basis ableiten, also so:</p>
<pre><code>class logfile : public singleton&lt;logfile&gt; { // bla };
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/950426</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/950426</guid><dc:creator><![CDATA[leo_]]></dc:creator><pubDate>Mon, 26 Dec 2005 20:52:02 GMT</pubDate></item><item><title><![CDATA[Reply to Singleton als Template on Mon, 26 Dec 2005 21:13:10 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">typedef Singleton&lt;Logfile&gt; LogFile
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/950437</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/950437</guid><dc:creator><![CDATA[Ben04]]></dc:creator><pubDate>Mon, 26 Dec 2005 21:13:10 GMT</pubDate></item><item><title><![CDATA[Reply to Singleton als Template on Tue, 27 Dec 2005 13:47:01 GMT]]></title><description><![CDATA[<blockquote>
<p>Zur Zeit wird es imho durch static am Anfang meines Programms erstellt und erst am Ende wieder zerstört.</p>
</blockquote>
<p>Nicht ganz ! Dein Singleton wird erst erstellt sobald du die Funktion getInstance() aufrufst, vorher ist da noch nichts <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/950744</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/950744</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Tue, 27 Dec 2005 13:47:01 GMT</pubDate></item></channel></rss>