<?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 Fehler]]></title><description><![CDATA[<p>Hallo,</p>
<p>habe aufeinmal ein Problem mit Singeltons in meinem Spiel. Vorweg: <strong>Das Problem besteht nur an dieser Codestelle. Ich verwende noch woanders im Programm Singeltons und da funktioniert es. Komisch</strong></p>
<p>Am besten ich Zeig erstmal die Fehlermeldung dann den Codeabschnitt und noch etwas drum herum.</p>
<blockquote>
<p>error C2440: '=': 'CTimer *' kann nicht in 'float' konvertiert werden<br />
1&gt; Es gibt keinen Kontext, in dem diese Konvertierung möglich ist<br />
1&gt;Source\Menue.cpp(128): error C2143: Syntaxfehler: Es fehlt ';' vor '-&gt;'</p>
</blockquote>
<pre><code class="language-cpp">void CMenue::renderintro ()
{

while (time &lt; 5)
{
	time = g_pTime-&gt;getframetime();

	g_pFramework-&gt;pApp-&gt;Clear ();

	psprite_intrologo-&gt;render ();

	g_pFramework-&gt;pApp-&gt;Display ();

}

}
</code></pre>
<p>Die Timer Klasse:</p>
<pre><code class="language-cpp">#ifndef _TIMER_
#define _TIMER_

#include &lt;SFML/Window.hpp&gt;

#include &quot;Singleton.h&quot;

#define g_pTime CTimer::Get ();

class CTimer : public TSingleton&lt;CTimer&gt; 
{

public:

float getframetime ();

private:

	sf::Clock Clock;
	float temp;

};

#endif
</code></pre>
<p>Die Singelton- Klasse obwohl ich nicht weiss was das für eine Rolle spielt weil wie gesagt im gleichen Programm nur an anderer Stelle funktioniert es:</p>
<pre><code class="language-cpp">#ifndef SINGLETON_HPP
#define SINGLETON_HPP

template &lt;class T&gt;

class TSingleton
{
  protected:

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

  public:

  // Memberfunktionen

  // Destruktor
  //
  virtual ~TSingleton ()
  {
  }

  // Get
  //
  // Aufgabe: Wenn nötig, statisches Objekt erzeugen und
  // Zeiger darauf zurückgeben
  //
  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);

  } // Get

  // Statisches Objekt freigeben
  //
  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* TSingleton&lt;T&gt;::m_pSingleton = 0;

#endif
</code></pre>
<p>Wäre für einen Rat sehr dankbar. Sitze schon Tage davor.</p>
<p>Gruß</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/268402/singelton-fehler</link><generator>RSS for Node</generator><lastBuildDate>Tue, 01 Sep 2026 19:05:52 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/268402.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 08 Jun 2010 17:07:20 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Singelton Fehler on Tue, 08 Jun 2010 17:10:19 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>habe aufeinmal ein Problem mit Singeltons in meinem Spiel. Vorweg: <strong>Das Problem besteht nur an dieser Codestelle. Ich verwende noch woanders im Programm Singeltons und da funktioniert es. Komisch</strong></p>
<p>Am besten ich Zeig erstmal die Fehlermeldung dann den Codeabschnitt und noch etwas drum herum.</p>
<blockquote>
<p>error C2440: '=': 'CTimer *' kann nicht in 'float' konvertiert werden<br />
1&gt; Es gibt keinen Kontext, in dem diese Konvertierung möglich ist<br />
1&gt;Source\Menue.cpp(128): error C2143: Syntaxfehler: Es fehlt ';' vor '-&gt;'</p>
</blockquote>
<pre><code class="language-cpp">void CMenue::renderintro ()
{

while (time &lt; 5)
{
	time = g_pTime-&gt;getframetime();

	g_pFramework-&gt;pApp-&gt;Clear ();

	psprite_intrologo-&gt;render ();

	g_pFramework-&gt;pApp-&gt;Display ();

}

}
</code></pre>
<p>Die Timer Klasse:</p>
<pre><code class="language-cpp">#ifndef _TIMER_
#define _TIMER_

#include &lt;SFML/Window.hpp&gt;

#include &quot;Singleton.h&quot;

#define g_pTime CTimer::Get ();

class CTimer : public TSingleton&lt;CTimer&gt; 
{

public:

float getframetime ();

private:

	sf::Clock Clock;
	float temp;

};

#endif
</code></pre>
<p>Die Singelton- Klasse obwohl ich nicht weiss was das für eine Rolle spielt weil wie gesagt im gleichen Programm nur an anderer Stelle funktioniert es:</p>
<pre><code class="language-cpp">#ifndef SINGLETON_HPP
#define SINGLETON_HPP

template &lt;class T&gt;

class TSingleton
{
  protected:

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

  public:

  // Memberfunktionen

  // Destruktor
  //
  virtual ~TSingleton ()
  {
  }

  // Get
  //
  // Aufgabe: Wenn nötig, statisches Objekt erzeugen und
  // Zeiger darauf zurückgeben
  //
  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);

  } // Get

  // Statisches Objekt freigeben
  //
  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* TSingleton&lt;T&gt;::m_pSingleton = 0;

#endif
</code></pre>
<p>Wäre für einen Rat sehr dankbar. Sitze schon Tage davor.</p>
<p>Gruß</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1909056</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1909056</guid><dc:creator><![CDATA[Errschaffer]]></dc:creator><pubDate>Tue, 08 Jun 2010 17:10:19 GMT</pubDate></item><item><title><![CDATA[Reply to Singelton Fehler on Tue, 08 Jun 2010 17:09:48 GMT]]></title><description><![CDATA[<p><code>#define g_pTime CTimer::Get ();</code> ohne Semikolon am Ende, sonst geht <code>g_pTime-&gt;Lalala();</code> in die Hose.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1909060</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1909060</guid><dc:creator><![CDATA[ipsec]]></dc:creator><pubDate>Tue, 08 Jun 2010 17:09:48 GMT</pubDate></item><item><title><![CDATA[Reply to Singelton Fehler on Tue, 08 Jun 2010 17:12:36 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">#define g_pTime CTimer::Get (); 
time = g_pTime-&gt;getframetime();
</code></pre>
<p>--&gt;</p>
<pre><code class="language-cpp">time = CTimer::Get ();-&gt;getframetime();
</code></pre>
<p>edit:<br />
was ist eigentlich an einem kryptischen <code>g_pTime</code> verständlicher als<br />
<code>Timer::Get()</code> ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1909061</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1909061</guid><dc:creator><![CDATA[brotbernd]]></dc:creator><pubDate>Tue, 08 Jun 2010 17:12:36 GMT</pubDate></item><item><title><![CDATA[Reply to Singelton Fehler on Tue, 08 Jun 2010 17:12:37 GMT]]></title><description><![CDATA[<p>Du spielst zu viel mit defines!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1909063</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1909063</guid><dc:creator><![CDATA[knivil]]></dc:creator><pubDate>Tue, 08 Jun 2010 17:12:37 GMT</pubDate></item><item><title><![CDATA[Reply to Singelton Fehler on Tue, 08 Jun 2010 19:36:34 GMT]]></title><description><![CDATA[<p>Also erstmal danke an ipsec. Scheint zu funktionieren konnte leider bisher nur einmal kompilieren weil ich darauf Probleme mit dem Pc hatte.</p>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/9203">@brotbernd</a> Weil ich das so aus dem Buch von Heiko Kalista übernommen habe. Über Sinn und unsinn kann man sich streiten. Ist wohl gewöhnung.</p>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/21632">@knivil</a> hab ich schon öfters mal aufgeschnappt. was ist an defines so böse?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1909168</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1909168</guid><dc:creator><![CDATA[Errschaffer]]></dc:creator><pubDate>Tue, 08 Jun 2010 19:36:34 GMT</pubDate></item><item><title><![CDATA[Reply to Singelton Fehler on Tue, 08 Jun 2010 19:46:08 GMT]]></title><description><![CDATA[<p>Errschaffer schrieb:</p>
<blockquote>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/21632">@knivil</a> hab ich schon öfters mal aufgeschnappt. was ist an defines so böse?</p>
</blockquote>
<p>defines sind simple, stupide Textersetzungen. Der Präprozessor ersetzt einfach jedes &quot;g_pTime&quot; durch &quot;Timer::Get();&quot;, egal wie sinnig das ist, oder ob in diesem Kontext g_pTime eine ganz andere Bedeutung hat. Jede Datei, die den Header einbindet, wird mit dieser Ersetzung verseucht, ob gewollt oder nicht.<br />
In deinem Fall hat ein define einfach keinen echten Mehrwert. Vor allem in Zeiten moderner Ides/Editoren, die sofort mit der passenden Completion aufwarten.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1909177</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1909177</guid><dc:creator><![CDATA[l&#x27;abra d&#x27;or]]></dc:creator><pubDate>Tue, 08 Jun 2010 19:46:08 GMT</pubDate></item><item><title><![CDATA[Reply to Singelton Fehler on Wed, 09 Jun 2010 05:41:01 GMT]]></title><description><![CDATA[<p>Errschaffer schrieb:</p>
<blockquote>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/21632">@knivil</a> hab ich schon öfters mal aufgeschnappt. was ist an defines so böse?</p>
</blockquote>
<p>Schau dir doch nochmal deine Frage an.</p>
<blockquote>
<p>Sitze schon Tage davor.</p>
</blockquote>
<p>Wieso? Wegen einem Makro. Hast Du ja jetzt an eigenem Leibe erfahren, was für blöde und schwer zu findene Fehler der Präprozessor erzeugen kann.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1909264</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1909264</guid><dc:creator><![CDATA[brotbernd]]></dc:creator><pubDate>Wed, 09 Jun 2010 05:41:01 GMT</pubDate></item></channel></rss>