<?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[Listen extern iterieren]]></title><description><![CDATA[<p>Guten Tag Leute,</p>
<p>Ich habe folgendes Problem, ich möchte von einer Klasse GravityHandler (public) auf eine die Liste der Klasse Galaxy (public) zugreifen und durch die Liste (Planetenliste) iterieren, allerdings kann ich nicht drauf zugreifen, da es Speicherverletzungen zu geben scheint, das Programm beendet dann einfach.</p>
<p>Hier der Code den ich dafür benutze:</p>
<pre><code>for (std::list&lt;Planet*&gt;::iterator it = galaxy-&gt;planetList.begin(); it !=    galaxy-&gt;planetList.end(); ++it)
{

}
</code></pre>
<p>Ich hatte die PlanetenList einfach als public deklariert, nachdem es auch mit einem Getter nicht ging, das Resultat ist das gleiche.</p>
<p>Ich kann diese Iteration ohne weiteres auf das Objekt Galaxy mit einer Funktion auslagern, allerdings möchte ich es designtechnisch so lösen.</p>
<p>Ich weiß das Problem ist etwas speziell und vielleicht konnte ich es auch nicht richtig darbieten, vielen Dank für eure Hilfe.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/319111/listen-extern-iterieren</link><generator>RSS for Node</generator><lastBuildDate>Sat, 25 Jul 2026 22:46:34 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/319111.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 07 Aug 2013 12:48:23 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Listen extern iterieren on Wed, 07 Aug 2013 12:48:23 GMT]]></title><description><![CDATA[<p>Guten Tag Leute,</p>
<p>Ich habe folgendes Problem, ich möchte von einer Klasse GravityHandler (public) auf eine die Liste der Klasse Galaxy (public) zugreifen und durch die Liste (Planetenliste) iterieren, allerdings kann ich nicht drauf zugreifen, da es Speicherverletzungen zu geben scheint, das Programm beendet dann einfach.</p>
<p>Hier der Code den ich dafür benutze:</p>
<pre><code>for (std::list&lt;Planet*&gt;::iterator it = galaxy-&gt;planetList.begin(); it !=    galaxy-&gt;planetList.end(); ++it)
{

}
</code></pre>
<p>Ich hatte die PlanetenList einfach als public deklariert, nachdem es auch mit einem Getter nicht ging, das Resultat ist das gleiche.</p>
<p>Ich kann diese Iteration ohne weiteres auf das Objekt Galaxy mit einer Funktion auslagern, allerdings möchte ich es designtechnisch so lösen.</p>
<p>Ich weiß das Problem ist etwas speziell und vielleicht konnte ich es auch nicht richtig darbieten, vielen Dank für eure Hilfe.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2344163</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2344163</guid><dc:creator><![CDATA[FroZenViper667]]></dc:creator><pubDate>Wed, 07 Aug 2013 12:48:23 GMT</pubDate></item><item><title><![CDATA[Reply to Listen extern iterieren on Wed, 07 Aug 2013 12:59:19 GMT]]></title><description><![CDATA[<p>Ein Container mit Raw-Pointern</p>
<pre><code>std::list&lt;Planet*&gt;
</code></pre>
<p>ist immer eine Schwachstelle. Empfehlung <code>std::shared_ptr&lt;Planet&gt;</code></p>
<p>Verdacht: ein (oder mehrere) Pointer in der Liste sind ungültig.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2344167</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2344167</guid><dc:creator><![CDATA[Werner_logoff]]></dc:creator><pubDate>Wed, 07 Aug 2013 12:59:19 GMT</pubDate></item><item><title><![CDATA[Reply to Listen extern iterieren on Wed, 07 Aug 2013 13:03:02 GMT]]></title><description><![CDATA[<p>Eine std::list von Pointern ist Overhead pur. Nimm vector&lt;Planet*&gt; oder besser vector&lt;shared_ptr&lt;Planet&gt;&gt;.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2344171</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2344171</guid><dc:creator><![CDATA[list-&amp;gt;vector]]></dc:creator><pubDate>Wed, 07 Aug 2013 13:03:02 GMT</pubDate></item><item><title><![CDATA[Reply to Listen extern iterieren on Wed, 07 Aug 2013 13:06:13 GMT]]></title><description><![CDATA[<p>Also ein Container mit Raw-Pointern ist total okay, wenn es sich einfach nur um Verweise handelt (dann natürlich vector &gt;&gt; list). Aber die Implikation, dass es doch besitzende Zeiger sind, liegt nahe.</p>
<p>Wieso hier aber alle ohne irgendwelche Kontextinformationen den overheadbehafteten shared_ptr empfehlen, verstehe ich nicht.</p>
<p>list-&gt;vector:<br />
Wie kannst Du einerseits list wegen Overhead verurteilen, aber shared_ptr empfehlen?!</p>
<p>@TE:<br />
An dem Code ist nichts falsch (nur etwas umständlich), wir brauchen schon weitere Informationen. Debug Mal rein, um zu sehen, wo er wirklich zusammenbricht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2344172</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2344172</guid><dc:creator><![CDATA[Eisflamme]]></dc:creator><pubDate>Wed, 07 Aug 2013 13:06:13 GMT</pubDate></item><item><title><![CDATA[Reply to Listen extern iterieren on Wed, 07 Aug 2013 13:04:48 GMT]]></title><description><![CDATA[<p>Die Glaskugel zeigt: Im Destruktor von Galaxy werden alle Planeten gelöscht. Ein Objekt der Klasse Galaxy wurde kopiert (evt. auch unbewusst)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2344173</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2344173</guid><dc:creator><![CDATA[Werner_logoff]]></dc:creator><pubDate>Wed, 07 Aug 2013 13:04:48 GMT</pubDate></item><item><title><![CDATA[Reply to Listen extern iterieren on Wed, 07 Aug 2013 13:22:10 GMT]]></title><description><![CDATA[<p>Also Shared_ptr sind im Allgemeinen ja schon einfacher da es keine Speicherlecks gibt etc., oder schwerer sind diese herbeizurufen.</p>
<p>Habe grad mal probiert einfach im Galaxy Objekt einen Iteratortest anzulegen, der funktioniert auch auf der Klasse.</p>
<p>Ich kann mir kaum vorstellen dass es was mit den planet-pointern zu tun hat, da ich z.B. wenn ich alles auskommentiere in der for schleife schon den Fehler bekomme, d.h. es wird zu keinem Zeitpunkt auf die Zeiger im Container zugegriffen.<br />
Außer mit dem Begin und End, keine Ahnung wie sich das verhält.</p>
<p>Ich habe genau ein Element in der Liste, welches ich mit Push_back in der Main einfüge und das Objekt besteht auf jeden Fall, ist also nicht null.</p>
<p>Debug Informationen sind, wobei ich nicht weiß ob die euch was nutzen.</p>
<p>&quot;Unbehandelte Ausnahme bei 0x0129DA06 in Party Planet (work in progress).exe: 0xC0000005: Zugriffsverletzung beim Lesen an Position 0xCDCDCDCD&quot;</p>
<p><a href="http://www.imagebanana.com/view/u9wjfcgb/Fehler.PNG" rel="nofollow"></a><a href="http://i.imagebanana.com/img/u9wjfcgb/thumb/Fehler.PNG" rel="nofollow">http://i.imagebanana.com/img/u9wjfcgb/thumb/Fehler.PNG</a></p>
<p>ich glaub halt einfach dass das irgendwas mit der Liste an sich zu tun hat, bei dem man einen Iterator einer Liste nicht auf einem anderen Objekt, als das in der die Liste drin ist, erstellen kann, oder so etwas in der Art, aber ist nur eine Vermutung.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2344178</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2344178</guid><dc:creator><![CDATA[FroZenViper]]></dc:creator><pubDate>Wed, 07 Aug 2013 13:22:10 GMT</pubDate></item><item><title><![CDATA[Reply to Listen extern iterieren on Wed, 07 Aug 2013 13:34:35 GMT]]></title><description><![CDATA[<p>Zeig Mal mehr Code, insbesondere den Teil, bei dem es dumpt. Dein Codeausschnitt ist unzureichend.</p>
<p>Die Debug-Fehlermeldung sagt einfach, dass der Zeiger uninitialisiert ist (nicht mehr oder noch nicht) und dass Du trotzdem versuchst über diesen Zeiger auf ein Objekt zuzugreifen. Zeig auch Mal deinen Push-Code von Der Main, nutzt Du überhaupt new?</p>
<p>Statt shared_ptr würde ich einfach unique_ptr empfehlen und fertig, der ist sehr vernünftig.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2344183</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2344183</guid><dc:creator><![CDATA[Eisflamme]]></dc:creator><pubDate>Wed, 07 Aug 2013 13:34:35 GMT</pubDate></item><item><title><![CDATA[Reply to Listen extern iterieren on Wed, 07 Aug 2013 13:37:50 GMT]]></title><description><![CDATA[<p>FroZenViper schrieb:</p>
<blockquote>
<p>ich glaub halt einfach dass das irgendwas mit der Liste an sich zu tun hat, bei dem man einen Iterator einer Liste nicht auf einem anderen Objekt, als das in der die Liste drin ist, erstellen kann, oder so etwas in der Art, aber ist nur eine Vermutung.</p>
</blockquote>
<p>Nein, das kann nicht sein.</p>
<p>Die naheliegende Vermutung ist, dass du irgendwo deinen Heap kaputt gemacht machst, weil du die Dreierregel (Wikipedia: Rule of Three) verletzt hast. Zeig uns mehr Code (zum Beispiel da, wo du deine Liste erstellst) und wir werden dir den Fehler zeigen können.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2344185</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2344185</guid><dc:creator><![CDATA[list-&amp;gt;vector]]></dc:creator><pubDate>Wed, 07 Aug 2013 13:37:50 GMT</pubDate></item><item><title><![CDATA[Reply to Listen extern iterieren on Wed, 07 Aug 2013 13:43:22 GMT]]></title><description><![CDATA[<p>FroZenViper schrieb:</p>
<blockquote>
<p>&quot;Unbehandelte Ausnahme bei 0x0129DA06 in Party Planet (work in progress).exe: 0xC0000005: Zugriffsverletzung beim Lesen an Position 0xCDCDCDCD&quot;</p>
</blockquote>
<p>dabei handelt es sich um <a href="http://en.wikipedia.org/wiki/Magic_number_%28programming%29" rel="nofollow">uninitialisierten Speicher auf dem Heap</a></p>
<p>FroZenViper schrieb:</p>
<blockquote>
<p><a href="http://www.imagebanana.com/view/u9wjfcgb/Fehler.PNG" rel="nofollow"></a><a href="http://i.imagebanana.com/img/u9wjfcgb/thumb/Fehler.PNG" rel="nofollow">http://i.imagebanana.com/img/u9wjfcgb/thumb/Fehler.PNG</a></p>
</blockquote>
<p>Der Fehler tritt bei einer Dereferenzierung des list-Iterators auf. Das widerspricht sich mit Deiner Aussage:</p>
<p>FroZenViper schrieb:</p>
<blockquote>
<p>.. wenn ich alles auskommentiere in der for schleife schon den Fehler bekomme,..</p>
</blockquote>
<p>Existiert das Galaxy-Objekt zu diesem Zeitpunkt noch?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2344186</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2344186</guid><dc:creator><![CDATA[Werner_logoff]]></dc:creator><pubDate>Wed, 07 Aug 2013 13:43:22 GMT</pubDate></item><item><title><![CDATA[Reply to Listen extern iterieren on Wed, 07 Aug 2013 13:44:41 GMT]]></title><description><![CDATA[<p>okay eig. wollte ich es vermeiden so viel Code zu senden,</p>
<p>das ist die Main, das ganze läuft mit sfml und sf ist namespace</p>
<pre><code>using namespace sf;

int main()
{
	float alpha = 0.0f;

	VideoMode desktop = VideoMode::getDesktopMode();
	RenderWindow window(desktop,GAMENAME, Style::Fullscreen);

	//Creation of Player and one Planet
	Vector2f planetPosition;
	planetPosition.x = (float) desktop.width/2;
	planetPosition.y = (float) desktop.height/2;
	Planet* planet = new Planet(planetPosition, 200.0f);
	Player* player = new Player();

	//Gravitation
	RadialGravity* gravity = new RadialGravity(400, 1, 5); 

	//A new Galaxy
	Galaxy* galaxy = new Galaxy();
	galaxy-&gt;getPlanetList()-&gt;push_back(planet);

	//Set Position of Player
	Vector2f playerPosition;
	playerPosition.x = planet-&gt;getPlanet()-&gt;getPosition().x + planet-&gt;getPlanet()-&gt;getRadius();
	playerPosition.y =  planet-&gt;getPlanet()-&gt;getPosition().y - 40.0f;
	player-&gt;setPlayerPosition(playerPosition);
	player-&gt;setNewGalaxy(galaxy);
	//player-&gt;getPlayer()-&gt;move(planet-&gt;getPlanet()-&gt;getRadius()-15.0f,-40.0f);

	/* float yPositionPlayer = planet-&gt;getPlanet()-&gt;getRadius()+40.0f;
	float ySpeed = 1.0f;
	float graviNumber = 0.002f;
	float yGravitation;
	bool jump = false; */

	while (window.isOpen() &amp;&amp; !Keyboard::isKeyPressed(Keyboard::Key::Escape))
    {
        Event event;
        while (window.pollEvent(event))
        {
            if (event.type == Event::Closed)
                window.close();
        }

		window.clear();
		planet-&gt;draw(window,RenderStates::Default);
		player-&gt;draw(window,RenderStates::Default);

		player-&gt;update();
             ...
</code></pre>
<p>das ist die Galaxy.h</p>
<pre><code>class Galaxy 
{
	public:
		std::list&lt;Planet*&gt;*  getPlanetList();
		void iteratorTest();
	private:
		String galaxyName;
		std::list&lt;Planet*&gt; planetList;
};
</code></pre>
<p>der Getter in der Galaxy.cpp</p>
<pre><code>std::list&lt;Planet*&gt;* Galaxy::getPlanetList()
{
	std::list&lt;Planet*&gt;* planetListPointer = &amp;planetList;
	return planetListPointer;
}
</code></pre>
<p>im Player wird update aufgerufen das sieht man im Code ganz unten, und in dem Update spricht er den GravityHandler an und da gibts den Fehler, weil der auf die Galaxien Liste zugreift</p>
<pre><code>void Player::update() 
{
	//whats the gravitation?
	//gravityHandler-&gt;galaxy-&gt;iteratorTest();
	this-&gt;gravityHandler-&gt;activeGravitation();
	//updateMovement();
}
</code></pre>
<p>GravityHandler Klasse</p>
<pre><code>class GravityHandler 
{
	public:
		GravityHandler(Player* player);
		void setGalaxy(Galaxy* galaxy);
		Gravity* activeGravitation();
		Vector2f calculateGravityPlayerPosition();
		float calculateGravityPlayerRotation();
		Galaxy* galaxy;
	private:
		float calculateGravityPlayerHeight();
		float calculateGravityPower();
		Gravity* activeGravity;
		Planet* activeGravityObject;
		//Galaxy* galaxy;
		Player* player;
};
</code></pre>
<p>den Code betreffende CPP code</p>
<pre><code>Gravity* GravityHandler::activeGravitation()
{
	//return value
	Gravity* theActiveGravitation = NULL;

	//position of the player
	Vector2f playerPosition = player-&gt;getPlayerPosition();

	//Are the radial planet gravity fields in range?
	for (std::list&lt;Planet*&gt;::iterator it = galaxy-&gt;getPlanetList()-&gt;begin(); it != galaxy-&gt;getPlanetList()-&gt;end(); ++it)
	{
			Vector2f differencePositions;

			differencePositions.x = (*it)-&gt;getPosition().x - playerPosition.x;
			differencePositions.y = (*it)-&gt;getPosition().y - playerPosition.y;
			float distance = sqrt( (differencePositions.x * differencePositions.x) + (differencePositions.y * differencePositions.y));

			//yes for this member it is in range
			if(distance &lt;= (*it)-&gt;getGravity()-&gt;getRange() &amp;&amp; (*it)-&gt;getGravity() != this-&gt;activeGravity)
			{
				//saves the gravity in handler, return value and saves the object this gravity belongs to
				activeGravity = (*it)-&gt;getGravity();
				theActiveGravitation = (*it)-&gt;getGravity();
				this-&gt;activeGravityObject = (*it); 
			}

	}

	//Wählt das neue Gravitationsfeld aus
	return theActiveGravitation;
}
</code></pre>
<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="😕"
    /> ich hoffe das bringt was, sry für die wall of text</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2344187</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2344187</guid><dc:creator><![CDATA[FroZenViper]]></dc:creator><pubDate>Wed, 07 Aug 2013 13:44:41 GMT</pubDate></item><item><title><![CDATA[Reply to Listen extern iterieren on Wed, 07 Aug 2013 13:49:45 GMT]]></title><description><![CDATA[<p>Der Member 'galaxy' wird zwar im Player gesetzt, aber nicht im GravityHandler!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2344192</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2344192</guid><dc:creator><![CDATA[Werner_logoff]]></dc:creator><pubDate>Wed, 07 Aug 2013 13:49:45 GMT</pubDate></item><item><title><![CDATA[Reply to Listen extern iterieren on Wed, 07 Aug 2013 14:04:26 GMT]]></title><description><![CDATA[<p>fuck, vielen Dank :S manche Fehler sind so trivial. Also danke an alle die mitgeholfen haben, werde das mal schleunigst korrigieren.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2344200</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2344200</guid><dc:creator><![CDATA[FroZenViper]]></dc:creator><pubDate>Wed, 07 Aug 2013 14:04:26 GMT</pubDate></item><item><title><![CDATA[Reply to Listen extern iterieren on Wed, 07 Aug 2013 14:16:50 GMT]]></title><description><![CDATA[<p>Und wenn du gerade schon dabei zu verbessern:<br />
Wenn du alpha auch noch auf dem Heap erzeugst hast du wenigstens konsequent alles auf dem Heap liegen... naja, fast.<br />
Kommst du aus der Java/C# Ecke?</p>
<pre><code>using namespace sf; 

int main() 
{ 
    float alpha = new float( 0.0f ); 

    VideoMode desktop = VideoMode::getDesktopMode(); 
    RenderWindow window(desktop,GAMENAME, Style::Fullscreen); 

    //Creation of Player and one Planet 
    Vector2f planetPosition; 
    planetPosition.x = (float) desktop.width/2; 
    planetPosition.y = (float) desktop.height/2; 
    Planet* planet = new Planet(planetPosition, 200.0f); 
    Player* player = new Player(); 

    //Gravitation 
    RadialGravity* gravity = new RadialGravity(400, 1, 5); 

    //A new Galaxy 
    Galaxy* galaxy = new Galaxy(); 
    galaxy-&gt;getPlanetList()-&gt;push_back(planet);

    ...
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2344204</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2344204</guid><dc:creator><![CDATA[Stack &amp;gt; Heap]]></dc:creator><pubDate>Wed, 07 Aug 2013 14:16:50 GMT</pubDate></item><item><title><![CDATA[Reply to Listen extern iterieren on Wed, 07 Aug 2013 14:31:09 GMT]]></title><description><![CDATA[<p><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="🙂"
    /> danke, für den Hinweis, werde ich auch noch machen. Naja Java/c#, sogar basic und delphi, hab ich auch schon geschrieben, eigentlich alles Querfeld, merkt man wahrscheinlich schon an der ein oder anderen Stelle.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2344212</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2344212</guid><dc:creator><![CDATA[FroZenViper]]></dc:creator><pubDate>Wed, 07 Aug 2013 14:31:09 GMT</pubDate></item><item><title><![CDATA[Reply to Listen extern iterieren on Wed, 07 Aug 2013 14:39:41 GMT]]></title><description><![CDATA[<p>Ich <s>denke</s> hoffe, das war ironisch gemeint. Du solltest eigentlich vermeiden, Daten explizit auf dem Heap zu erzeugen. Das gilt gerade für <code>Galaxy</code> , <code>Planet</code> und <code>Player</code> , die könnten genauso gut auf dem Stack liegen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2344214</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2344214</guid><dc:creator><![CDATA[DocShoe]]></dc:creator><pubDate>Wed, 07 Aug 2013 14:39:41 GMT</pubDate></item><item><title><![CDATA[Reply to Listen extern iterieren on Wed, 07 Aug 2013 14:39:40 GMT]]></title><description><![CDATA[<p>das war leider nicht mal der Fehler, ich habs ein bisschen trickreich in meinem Code gemacht</p>
<pre><code>void Player::setNewGalaxy(Galaxy* galaxy)
{
	this-&gt;gravityHandler-&gt;setGalaxy(galaxy);
}
</code></pre>
<p>man setzt das Level beim Spieler und der setzt es bei der Gravitation</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2344215</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2344215</guid><dc:creator><![CDATA[FroZenViper]]></dc:creator><pubDate>Wed, 07 Aug 2013 14:39:40 GMT</pubDate></item><item><title><![CDATA[Reply to Listen extern iterieren on Wed, 07 Aug 2013 14:46:34 GMT]]></title><description><![CDATA[<p>DocShoe schrieb:</p>
<blockquote>
<p>Ich <s>denke</s> hoffe, das war ironisch gemeint. Du solltest eigentlich vermeiden, Daten explizit auf dem Heap zu erzeugen. Das gilt gerade für <code>Galaxy</code> , <code>Planet</code> und <code>Player</code> , die könnten genauso gut auf dem Stack liegen.</p>
</blockquote>
<p>ja okay, ich muss mich da mal schlau machen, mit dem Unterschied der Erzeugung etc., bin halt kein Profi.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2344216</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2344216</guid><dc:creator><![CDATA[FroZenViper]]></dc:creator><pubDate>Wed, 07 Aug 2013 14:46:34 GMT</pubDate></item><item><title><![CDATA[Reply to Listen extern iterieren on Wed, 07 Aug 2013 14:50:34 GMT]]></title><description><![CDATA[<p>FroZenViper schrieb:</p>
<blockquote>
<p><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="🙂"
    /> danke, für den Hinweis, werde ich auch noch machen. Naja Java/c#, sogar basic und delphi, hab ich auch schon geschrieben, eigentlich alles Querfeld, merkt man wahrscheinlich schon an der ein oder anderen Stelle.</p>
</blockquote>
<p>Zeiger+new und &quot;Handler&quot; sind ein Indiz. Ich würde GravityHandler ja zumindest durch GravityForce ersetzen, dann fällt nicht so auf, dass die Gravitation nicht selbst agieren kann. <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/2344219</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2344219</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Wed, 07 Aug 2013 14:50:34 GMT</pubDate></item><item><title><![CDATA[Reply to Listen extern iterieren on Wed, 07 Aug 2013 14:54:15 GMT]]></title><description><![CDATA[<p>FroZenViper schrieb:</p>
<blockquote>
<p>Also Shared_ptr sind im Allgemeinen ja schon einfacher da es keine Speicherlecks gibt etc., oder schwerer sind diese herbeizurufen.</p>
</blockquote>
<p>Ja, aber shared_ptr ist für geteilten Besitz. Den hast du nicht.</p>
<p>Für RAII bitte unique_ptr nehmen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2344222</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2344222</guid><dc:creator><![CDATA[Unique Pointer Commitee]]></dc:creator><pubDate>Wed, 07 Aug 2013 14:54:15 GMT</pubDate></item><item><title><![CDATA[Reply to Listen extern iterieren on Wed, 07 Aug 2013 14:56:46 GMT]]></title><description><![CDATA[<p>Unique Pointer Commitee schrieb:</p>
<blockquote>
<p>Für RAII bitte unique_ptr nehmen.</p>
</blockquote>
<p>unique_ptr ist aber für Polymorphie. Den hat er hier nicht.</p>
<p>Für RAII bitte vector&lt;Planet&gt; nehmen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2344226</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2344226</guid><dc:creator><![CDATA[list-&amp;gt;vector]]></dc:creator><pubDate>Wed, 07 Aug 2013 14:56:46 GMT</pubDate></item><item><title><![CDATA[Reply to Listen extern iterieren on Wed, 07 Aug 2013 15:01:23 GMT]]></title><description><![CDATA[<p>Man kann unique_ptr auch nutzen, wenn man Verweise auf die Zeiger nutzen möchte oder häufig Dinge eingefügt werden. Bei vector&lt;Object&gt; hat man dann häufiges Umkopieren und Zeiger werden eben invalide. Polymorphie ist nur ein Grund.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2344230</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2344230</guid><dc:creator><![CDATA[Eisflamme]]></dc:creator><pubDate>Wed, 07 Aug 2013 15:01:23 GMT</pubDate></item><item><title><![CDATA[Reply to Listen extern iterieren on Wed, 07 Aug 2013 15:06:02 GMT]]></title><description><![CDATA[<p>Eisflamme schrieb:</p>
<blockquote>
<p>Man kann unique_ptr auch nutzen, wenn man Verweise auf die Zeiger nutzen möchte oder häufig Dinge eingefügt werden. Bei vector&lt;Object&gt; hat man dann häufiges Umkopieren und Zeiger werden eben invalide.</p>
</blockquote>
<p>In dem Fall ist aber deque&lt;Objekt&gt; besser als vector&lt;unique_ptr&lt;Objekt&gt; &gt;.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2344235</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2344235</guid><dc:creator><![CDATA[list-&amp;gt;vector]]></dc:creator><pubDate>Wed, 07 Aug 2013 15:06:02 GMT</pubDate></item><item><title><![CDATA[Reply to Listen extern iterieren on Wed, 07 Aug 2013 17:11:43 GMT]]></title><description><![CDATA[<p>also ihr seid alle falsch gelegen :p,</p>
<p>Im Prinzip war der Typ mit der Galaxy schon gut, weil ihr davon ausgegangen seid dass es galaxy nicht gibt, es lag jetzt aber daran dass ich dummerweise vergessen hatte die Gravitation des Planeten zu setzen, obwohl ich extra noch die Funktion geschrieben hatte. Mich wundert das nur, weil doch normalerweise Nullpointer Exception explizit dran steht.</p>
<p>Aber jetzt ist der Fehler ja weg.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2344278</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2344278</guid><dc:creator><![CDATA[FroZenViper]]></dc:creator><pubDate>Wed, 07 Aug 2013 17:11:43 GMT</pubDate></item></channel></rss>