<?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[Object über statische Variable der Klasse ansprechen, wie geht das sinnvoll?]]></title><description><![CDATA[<p>Ich habe die Klasse World, diese soll bei der Erstellung myself = this machen wobei myself statisch ist und über die statische Funktion GetWorld() returnt wird.</p>
<p>Soweit wie ich bislang Pointer und Referenzen verstanden habe, wäre es das sinnvollste dieses über eine Referenz zu machen. (Ein Singleton brauche ich nicht, myself soll ledigtlich auf die zuletz erstellte World zeigen.</p>
<p>World.h</p>
<pre><code class="language-cpp">class World{
public:
	World();
	~World();
	static World GetWorld();
private:

	static World myself;
};
</code></pre>
<p>World.cpp</p>
<pre><code class="language-cpp">World::World(){
	this-&gt;IsRunning = false;
	IsMove = false;
	&amp;myself = this;
}

World World::GetWorld(){
	return myself;
}
</code></pre>
<p>Mein Hauptproblem ist wahrscheinlich, das ich nicht weiß wo ich die &amp; setzen muss.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/246153/object-über-statische-variable-der-klasse-ansprechen-wie-geht-das-sinnvoll</link><generator>RSS for Node</generator><lastBuildDate>Fri, 18 Sep 2026 07:43:33 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/246153.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 23 Jul 2009 17:24:15 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Object über statische Variable der Klasse ansprechen, wie geht das sinnvoll? on Thu, 23 Jul 2009 17:24:15 GMT]]></title><description><![CDATA[<p>Ich habe die Klasse World, diese soll bei der Erstellung myself = this machen wobei myself statisch ist und über die statische Funktion GetWorld() returnt wird.</p>
<p>Soweit wie ich bislang Pointer und Referenzen verstanden habe, wäre es das sinnvollste dieses über eine Referenz zu machen. (Ein Singleton brauche ich nicht, myself soll ledigtlich auf die zuletz erstellte World zeigen.</p>
<p>World.h</p>
<pre><code class="language-cpp">class World{
public:
	World();
	~World();
	static World GetWorld();
private:

	static World myself;
};
</code></pre>
<p>World.cpp</p>
<pre><code class="language-cpp">World::World(){
	this-&gt;IsRunning = false;
	IsMove = false;
	&amp;myself = this;
}

World World::GetWorld(){
	return myself;
}
</code></pre>
<p>Mein Hauptproblem ist wahrscheinlich, das ich nicht weiß wo ich die &amp; setzen muss.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1748424</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1748424</guid><dc:creator><![CDATA[Empire Phoenix]]></dc:creator><pubDate>Thu, 23 Jul 2009 17:24:15 GMT</pubDate></item><item><title><![CDATA[Reply to Object über statische Variable der Klasse ansprechen, wie geht das sinnvoll? on Thu, 23 Jul 2009 17:30:03 GMT]]></title><description><![CDATA[<p>Mal Zeiger, mal Referenz.</p>
<pre><code class="language-cpp">class World{
public:
	World();
	~World();
	static World&amp; GetWorld();
private:
	static World* myself;
};
</code></pre>
<p>World.cpp</p>
<pre><code class="language-cpp">World::World(){
	this-&gt;IsRunning = false;
	IsMove = false;
	myself = this;
}

World&amp; World::GetWorld(){
	return *myself;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1748428</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1748428</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Thu, 23 Jul 2009 17:30:03 GMT</pubDate></item><item><title><![CDATA[Reply to Object über statische Variable der Klasse ansprechen, wie geht das sinnvoll? on Thu, 23 Jul 2009 17:30:56 GMT]]></title><description><![CDATA[<p>Ich finde deine Vorgehensweise etwas merkwürdig, aber okay.</p>
<p>Du solltest einen statischen Zeiger auf die aktuelle Welt machen, und nicht eine Instanz. Dann reicht auch</p>
<pre><code class="language-cpp">myself = this;
</code></pre>
<p>Denn momentan versuchst du, die Adresse des <code>myself</code> -Objekts zu ändern, was natürlich nicht geht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1748429</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1748429</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Thu, 23 Jul 2009 17:30:56 GMT</pubDate></item><item><title><![CDATA[Reply to Object über statische Variable der Klasse ansprechen, wie geht das sinnvoll? on Thu, 23 Jul 2009 17:45:11 GMT]]></title><description><![CDATA[<p>Hm volkard, stammt von dir der c++ kurs?</p>
<p>Also wenn ich deinen Code richtig verstehe:</p>
<p>Ich setze myself asl Pointer auf meine Welt,<br />
wenn nun etwas GetWorld() aufruft, gebe ich eine Referenz auf das im Pointer verwiesene Object zurück.</p>
<p>Bleibt die frage, wieso brauche ich den Pointer? , warum kann myself nciht gleich eine Referenz auf die Welt enthalten?</p>
<p>zu Nexus, wie meinst du das? (und wie wirkt es sich auf den Code aus?)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1748436</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1748436</guid><dc:creator><![CDATA[Empire Phoenix]]></dc:creator><pubDate>Thu, 23 Jul 2009 17:45:11 GMT</pubDate></item><item><title><![CDATA[Reply to Object über statische Variable der Klasse ansprechen, wie geht das sinnvoll? on Thu, 23 Jul 2009 17:47:10 GMT]]></title><description><![CDATA[<p>Empire Phoenix schrieb:</p>
<blockquote>
<p>zu Nexus, wie meinst du das? (und wie wirkt es sich auf den Code aus?)</p>
</blockquote>
<p>Ich habe genau das Gleiche gemeint wie volkard (meine Zeile kommt in seinem Code vor), war nur etwas langsamer.</p>
<p>Du musst einen Zeiger nehmen, weil du Referenzen während ihrer Lebensdauer nicht auf unterschiedliche Objekte verweisen lassen kannst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1748438</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1748438</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Thu, 23 Jul 2009 17:47:10 GMT</pubDate></item><item><title><![CDATA[Reply to Object über statische Variable der Klasse ansprechen, wie geht das sinnvoll? on Thu, 23 Jul 2009 17:50:05 GMT]]></title><description><![CDATA[<p>Empire Phoenix schrieb:</p>
<blockquote>
<p>Hm volkard, stammt von dir der c++ kurs?</p>
</blockquote>
<p>Ja.</p>
<blockquote>
<p>Also wenn ich deinen Code richtig verstehe:<br />
Ich setze myself asl Pointer auf meine Welt,<br />
wenn nun etwas GetWorld() aufruft, gebe ich eine Referenz auf das im Pointer verwiesene Object zurück.</p>
</blockquote>
<p>Völlig korrekt.</p>
<blockquote>
<p>Bleibt die frage, wieso brauche ich den Pointer? , warum kann myself nciht gleich eine Referenz auf die Welt enthalten?</p>
</blockquote>
<p>Weil DU erst bei der Erzeugung einer Welt den Zeiger setzen wolltest. Einen Zeiger kannst Du jederzeit ändern, daß er auf was anderes zeigt. Eine Referenz kann das nicht, sie muß bei Erzeugung gleich das kriegen, worauf sie &quot;zeigt&quot; und wird für immer auf das selbe Objekt &quot;zeigen&quot;.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1748439</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1748439</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Thu, 23 Jul 2009 17:50:05 GMT</pubDate></item><item><title><![CDATA[Reply to Object über statische Variable der Klasse ansprechen, wie geht das sinnvoll? on Thu, 23 Jul 2009 19:14:10 GMT]]></title><description><![CDATA[<p>Hm irgetwie gibt es immer noch Fehler:</p>
<pre><code class="language-cpp">C:/workspace/FallDown/Debug/../src/World.cpp:15: undefined reference to `World::myself'
src\World.o: In function `ZN5WorldC1Ev':
C:/workspace/FallDown/Debug/../src/World.cpp:15: undefined reference to `World::myself'
src\World.o: In function `ZN5World8GetWorldEv':
C:/workspace/FallDown/Debug/../src/World.cpp:19: undefined reference to `World::myself'
</code></pre>
<p>Zeile 15 ist:</p>
<pre><code class="language-cpp">World::World(){
	myself = this; //diese hier
}
</code></pre>
<p>Zeile 19 ist:</p>
<pre><code class="language-cpp">World&amp; World::GetWorld(){
	return *myself; //diese hier
}
</code></pre>
<p>Und der vollständigkeit halber die .h</p>
<pre><code class="language-cpp">class World{
public:
	World();
	~World();
	static World&amp; GetWorld();
private:

	static World* myself;
};
</code></pre>
<p>Nichtrelevantes natürlich rausgekürzt</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1748479</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1748479</guid><dc:creator><![CDATA[Empire Phoenix]]></dc:creator><pubDate>Thu, 23 Jul 2009 19:14:10 GMT</pubDate></item><item><title><![CDATA[Reply to Object über statische Variable der Klasse ansprechen, wie geht das sinnvoll? on Thu, 23 Jul 2009 19:18:59 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">World* World::myself;//neu

World::World(){
	myself = this; //diese hier
}
</code></pre>
<p>Die static-Sache in der klasse hat nur die variable deklariert, ohne speicherplatz zu besorgen. hier wird jetzt sogar der speicherplatz besorgt. deswegen auch in der *.cpp, damits nur einmal ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1748482</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1748482</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Thu, 23 Jul 2009 19:18:59 GMT</pubDate></item><item><title><![CDATA[Reply to Object über statische Variable der Klasse ansprechen, wie geht das sinnvoll? on Thu, 23 Jul 2009 21:38:51 GMT]]></title><description><![CDATA[<p>Super, danke nochmals für die Hilfe, das Mini-Spiel läuft jetzt problemlos.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1748557</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1748557</guid><dc:creator><![CDATA[Empire Phoenix]]></dc:creator><pubDate>Thu, 23 Jul 2009 21:38:51 GMT</pubDate></item></channel></rss>