<?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[Problem mit der Singleton-Klasse [solved]]]></title><description><![CDATA[<p>Ich versuche jetzt schon ne ganze Weile folgende main.cpp zu kompilieren, aber es scheitert immer daran daß der Kompiler die &quot;pointerFramework&quot; nicht erkennt.</p>
<p>Meines Erachtens nach müsste aber alles stimmen...</p>
<p>Kann mir jemand sagen wo da der Fehler liegt?</p>
<pre><code class="language-cpp">//Datei: main.cpp
#include &quot;Framework.hpp&quot;
#include &quot;Game.hpp&quot;

int main( int argc, char *argv[]) 
{
    if (pointerFramework-&gt;init(800, 600, 16, true)==false)
       return (0);

    Game CurrentGame;

    CurrentGame.init();
    CurrentGame.run();
    CurrentGame.quit();

    pointerFramework-&gt;quit();
    pointerFramework-&gt;del();

    return (0);   
}
</code></pre>
<pre><code class="language-cpp">//Datei: Framework.hpp
#ifndef FRAMEWORK_HPP
#define FRAMEWORK_HPP

#include &lt;iostream&gt;
#include &quot;Singleton.hpp&quot;
#include &quot;Clock.hpp&quot;

using namespace std;

#define pointerFramework Framework::Get();

class Framework : public Singleton&lt;Framework&gt;
{
      public:
             bool init (int screenWith, int screenHeight,
                            int colorDepth, bool fullscreen);
             void quit();
             void update();
             void clear();
             void flip();
             bool keyDown(int keyID);
             SDL_Surface *GetScreen() {return pointerScreen;}

      private:
              SDL_Surface *pointerScreen;
              Uint8       *pointerKeystate;

};

#endif
</code></pre>
<pre><code class="language-cpp">//DAtei: Singleton.hpp
#ifndef SINGLETON_HPP
#define SINGLETON_HPP

template &lt;class T&gt;
class Singleton
{
  protected:

  // Membervariablen
  static T *m_pSingleton;   // Statisches Objekt

  public:

  virtual ~Singleton ()
  {
  }

  inline static T* Get ()
  {
    // Existiert schon eine Instanz?
    if (!m_pSingleton)
    m_pSingleton = new T;   // Nein, dann neue Instanz erzeugen

    // Zeiger auf die Instanz zurückgeben
    return (m_pSingleton);

  }

  static void Del ()
  {
    // Gab es eine Instanz?
    if (m_pSingleton)
    {
      delete (m_pSingleton);  // Ja, dann freigeben
      m_pSingleton = NULL;    // und Zeiger auf NULL setzen
    }

  } // Del

};

// Die statische Variable erzeugen
//
template &lt;class T&gt;
T* Singleton&lt;T&gt;::m_pSingleton = 0;

#endif
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/158683/problem-mit-der-singleton-klasse-solved</link><generator>RSS for Node</generator><lastBuildDate>Thu, 10 Sep 2026 07:40:46 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/158683.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 07 Sep 2006 14:46:50 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Problem mit der Singleton-Klasse [solved] on Thu, 07 Sep 2006 15:10:48 GMT]]></title><description><![CDATA[<p>Ich versuche jetzt schon ne ganze Weile folgende main.cpp zu kompilieren, aber es scheitert immer daran daß der Kompiler die &quot;pointerFramework&quot; nicht erkennt.</p>
<p>Meines Erachtens nach müsste aber alles stimmen...</p>
<p>Kann mir jemand sagen wo da der Fehler liegt?</p>
<pre><code class="language-cpp">//Datei: main.cpp
#include &quot;Framework.hpp&quot;
#include &quot;Game.hpp&quot;

int main( int argc, char *argv[]) 
{
    if (pointerFramework-&gt;init(800, 600, 16, true)==false)
       return (0);

    Game CurrentGame;

    CurrentGame.init();
    CurrentGame.run();
    CurrentGame.quit();

    pointerFramework-&gt;quit();
    pointerFramework-&gt;del();

    return (0);   
}
</code></pre>
<pre><code class="language-cpp">//Datei: Framework.hpp
#ifndef FRAMEWORK_HPP
#define FRAMEWORK_HPP

#include &lt;iostream&gt;
#include &quot;Singleton.hpp&quot;
#include &quot;Clock.hpp&quot;

using namespace std;

#define pointerFramework Framework::Get();

class Framework : public Singleton&lt;Framework&gt;
{
      public:
             bool init (int screenWith, int screenHeight,
                            int colorDepth, bool fullscreen);
             void quit();
             void update();
             void clear();
             void flip();
             bool keyDown(int keyID);
             SDL_Surface *GetScreen() {return pointerScreen;}

      private:
              SDL_Surface *pointerScreen;
              Uint8       *pointerKeystate;

};

#endif
</code></pre>
<pre><code class="language-cpp">//DAtei: Singleton.hpp
#ifndef SINGLETON_HPP
#define SINGLETON_HPP

template &lt;class T&gt;
class Singleton
{
  protected:

  // Membervariablen
  static T *m_pSingleton;   // Statisches Objekt

  public:

  virtual ~Singleton ()
  {
  }

  inline static T* Get ()
  {
    // Existiert schon eine Instanz?
    if (!m_pSingleton)
    m_pSingleton = new T;   // Nein, dann neue Instanz erzeugen

    // Zeiger auf die Instanz zurückgeben
    return (m_pSingleton);

  }

  static void Del ()
  {
    // Gab es eine Instanz?
    if (m_pSingleton)
    {
      delete (m_pSingleton);  // Ja, dann freigeben
      m_pSingleton = NULL;    // und Zeiger auf NULL setzen
    }

  } // Del

};

// Die statische Variable erzeugen
//
template &lt;class T&gt;
T* Singleton&lt;T&gt;::m_pSingleton = 0;

#endif
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1133104</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1133104</guid><dc:creator><![CDATA[GrafToericht]]></dc:creator><pubDate>Thu, 07 Sep 2006 15:10:48 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit der Singleton-Klasse [solved] on Thu, 07 Sep 2006 14:55:24 GMT]]></title><description><![CDATA[<p>Moin.</p>
<pre><code class="language-cpp">#define pointerFramework Framework::Get();
</code></pre>
<p>in Verbindung mit</p>
<pre><code class="language-cpp">if (pointerFramework-&gt;init(800, 600, 16, true)==false)
</code></pre>
<p>führt zu</p>
<p>[cpp]<br />
if (Framework::Get();-&gt;init(800, 600, 16, true)==false)<br />
[cpp]</p>
<p>und das ist definitiv ein Semikolon zu viel.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1133119</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1133119</guid><dc:creator><![CDATA[Sid2K6]]></dc:creator><pubDate>Thu, 07 Sep 2006 14:55:24 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit der Singleton-Klasse [solved] on Thu, 07 Sep 2006 14:56:15 GMT]]></title><description><![CDATA[<p>Der Strichpunkt bei deinem pointerFramework define muss weg. Allerdings würde ich dir nicht empfehlen dieses define zu benutzen. Bringt nur Ärger wie du siehst. Framework::Get() zu schreiben ist ja auch nicht so dramatisch</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1133120</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1133120</guid><dc:creator><![CDATA[Cappo]]></dc:creator><pubDate>Thu, 07 Sep 2006 14:56:15 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit der Singleton-Klasse [solved] on Thu, 07 Sep 2006 14:57:40 GMT]]></title><description><![CDATA[<p>Exakt. Und da erkennt man dann wenigstens auch, was die Zeile macht: ERST ein Objekt holen und DANN darauf zugreifen. Die erste Version liest sich, als sei das Objekt irgendwo schon angelegt worden...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1133124</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1133124</guid><dc:creator><![CDATA[Sid2K6]]></dc:creator><pubDate>Thu, 07 Sep 2006 14:57:40 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit der Singleton-Klasse [solved] on Thu, 07 Sep 2006 15:11:29 GMT]]></title><description><![CDATA[<p>Danke. Typischer Anfängerfehler <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>
]]></description><link>https://www.c-plusplus.net/forum/post/1133138</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1133138</guid><dc:creator><![CDATA[GrafToericht]]></dc:creator><pubDate>Thu, 07 Sep 2006 15:11:29 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit der Singleton-Klasse [solved] on Thu, 07 Sep 2006 17:26:19 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>Vielleicht solltest du auch mal das komplette Schreiben des Wortes Pointer überdenken.</p>
<p>chrische</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1133218</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1133218</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Thu, 07 Sep 2006 17:26:19 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit der Singleton-Klasse [solved] on Thu, 07 Sep 2006 22:34:57 GMT]]></title><description><![CDATA[<p>Mal sehen, ich kann nur garnicht auf &quot;ungarisches&quot; Codeobfuscating <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f621.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--pouting_face"
      title=":rage:"
      alt="😡"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1133355</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1133355</guid><dc:creator><![CDATA[GrafToericht]]></dc:creator><pubDate>Thu, 07 Sep 2006 22:34:57 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit der Singleton-Klasse [solved] on Fri, 08 Sep 2006 06:40:07 GMT]]></title><description><![CDATA[<p>Eine &quot;class Framework&quot; könnte auf falsches Design hinweisen <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="😉"
    /> <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/1133421</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1133421</guid><dc:creator><![CDATA[Delryn]]></dc:creator><pubDate>Fri, 08 Sep 2006 06:40:07 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit der Singleton-Klasse [solved] on Fri, 08 Sep 2006 07:12:39 GMT]]></title><description><![CDATA[<p>Ausserdem sind Makros ihbah, was spricht (wenn schon der Weg) gegen</p>
<pre><code class="language-cpp">inline Framework* pointerFramework { return Framework::Get(); }
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1133440</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1133440</guid><dc:creator><![CDATA[LordJaxom]]></dc:creator><pubDate>Fri, 08 Sep 2006 07:12:39 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit der Singleton-Klasse [solved] on Fri, 08 Sep 2006 07:27:45 GMT]]></title><description><![CDATA[<p>Ich würde bei Get nur eine Referenz zurück geben,<br />
da ja niemand den Pointer der Singelton instanz braucht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1133445</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1133445</guid><dc:creator><![CDATA[phlox81]]></dc:creator><pubDate>Fri, 08 Sep 2006 07:27:45 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit der Singleton-Klasse [solved] on Fri, 08 Sep 2006 07:33:56 GMT]]></title><description><![CDATA[<p>Und mal wieder wurde das Singleton-Muster falsch eingesetzt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1133449</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1133449</guid><dc:creator><![CDATA[gamesprogger]]></dc:creator><pubDate>Fri, 08 Sep 2006 07:33:56 GMT</pubDate></item></channel></rss>