<?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[Funktion: Zweidimensionales Array zurückgeben]]></title><description><![CDATA[<p>Hallo liebe C++ Community,</p>
<p>ich bin dabei C++ zu lernen und habe mir gedacht, ich spiele ein bisschen mit einer Klasse herum. Jetzt erstmal der Code für die Klasse <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>
<pre><code class="language-cpp">class CRocket
{
private:
	int iPosTargetX, iPosTargetY;
	double dSpeed;
	double dDamage;
	double dRemoval;
	double dTimeToElim;
	unsigned int uiIdNumber;
	std::string sType;

	double CalculateTimeToElim()
	{
		return (this-&gt;dRemoval/this-&gt;dSpeed);
	}
public:
	CRocket(int iPosTargetX, int iPosTargetY, double dRemoval, unsigned int uiIdNumber)
	{
		this-&gt;iPosTargetX		= iPosTargetX;
		this-&gt;iPosTargetY		= iPosTargetY;
		this-&gt;dSpeed			= 8600;
		this-&gt;dDamage			= 999999;
		this-&gt;dRemoval			= dRemoval;
		this-&gt;dTimeToElim		= CalculateTimeToElim();
		this-&gt;uiIdNumber	    = uiIdNumber;
		this-&gt;sType				= &quot;AVR X8600T&quot;;
	}
	CRocket(int iPosTargetX, int iPosTargetY, double dRemoval, unsigned int uiIdNumber, std::string sType)
	{
		this-&gt;iPosTargetX		= iPosTargetX;
		this-&gt;iPosTargetY		= iPosTargetY;
		this-&gt;dSpeed			= 8600;
		this-&gt;dDamage			= 999999;
		this-&gt;dRemoval			= dRemoval;
		this-&gt;dTimeToElim		= CalculateTimeToElim();
		this-&gt;uiIdNumber	    = uiIdNumber;
		this-&gt;sType				= sType;
	}
	~CRocket() { }

	void StartRocket(int iPosX, int iPosY)
	{
	}
};
</code></pre>
<p>So. In der main()-Funktion schreibe ich mir jetzt ein Zweidimensionales Feld ( 9x9 ):</p>
<pre><code>(x)

1 2 3 4 5 6 7 8 9
------------------
x x x x x x x x x | 1
x x x x x x x x x | 2
x x x x x x x x x | 3
x x x x x x x x x | 4
x x x x x x x x x | 5  (y)
x x x x x x x x x | 6
x x x x x x x x x | 7
x x x x x x x x x | 8
x x x x x x x x x | 9
</code></pre>
<p>Um die &quot;Rakete&quot; in die Position des Feldes &quot;fliegen&quot; zu lassen, habe ich mir gedacht, ich baue eine Funktion (StartRocket()), die ein Zweidimensionales Array zurückgibt. Geht das überhaupt? Wenn ja, ist es verständlich für einen Anfänger wie mich, oder sollte ich es lieber erstmal manuell machen?</p>
<p>Ich danke für die Aufmerksamkeit :p<br />
MFG</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/297771/funktion-zweidimensionales-array-zurückgeben</link><generator>RSS for Node</generator><lastBuildDate>Fri, 14 Aug 2026 08:10:48 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/297771.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 06 Jan 2012 12:19:20 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Funktion: Zweidimensionales Array zurückgeben on Fri, 06 Jan 2012 12:19:20 GMT]]></title><description><![CDATA[<p>Hallo liebe C++ Community,</p>
<p>ich bin dabei C++ zu lernen und habe mir gedacht, ich spiele ein bisschen mit einer Klasse herum. Jetzt erstmal der Code für die Klasse <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>
<pre><code class="language-cpp">class CRocket
{
private:
	int iPosTargetX, iPosTargetY;
	double dSpeed;
	double dDamage;
	double dRemoval;
	double dTimeToElim;
	unsigned int uiIdNumber;
	std::string sType;

	double CalculateTimeToElim()
	{
		return (this-&gt;dRemoval/this-&gt;dSpeed);
	}
public:
	CRocket(int iPosTargetX, int iPosTargetY, double dRemoval, unsigned int uiIdNumber)
	{
		this-&gt;iPosTargetX		= iPosTargetX;
		this-&gt;iPosTargetY		= iPosTargetY;
		this-&gt;dSpeed			= 8600;
		this-&gt;dDamage			= 999999;
		this-&gt;dRemoval			= dRemoval;
		this-&gt;dTimeToElim		= CalculateTimeToElim();
		this-&gt;uiIdNumber	    = uiIdNumber;
		this-&gt;sType				= &quot;AVR X8600T&quot;;
	}
	CRocket(int iPosTargetX, int iPosTargetY, double dRemoval, unsigned int uiIdNumber, std::string sType)
	{
		this-&gt;iPosTargetX		= iPosTargetX;
		this-&gt;iPosTargetY		= iPosTargetY;
		this-&gt;dSpeed			= 8600;
		this-&gt;dDamage			= 999999;
		this-&gt;dRemoval			= dRemoval;
		this-&gt;dTimeToElim		= CalculateTimeToElim();
		this-&gt;uiIdNumber	    = uiIdNumber;
		this-&gt;sType				= sType;
	}
	~CRocket() { }

	void StartRocket(int iPosX, int iPosY)
	{
	}
};
</code></pre>
<p>So. In der main()-Funktion schreibe ich mir jetzt ein Zweidimensionales Feld ( 9x9 ):</p>
<pre><code>(x)

1 2 3 4 5 6 7 8 9
------------------
x x x x x x x x x | 1
x x x x x x x x x | 2
x x x x x x x x x | 3
x x x x x x x x x | 4
x x x x x x x x x | 5  (y)
x x x x x x x x x | 6
x x x x x x x x x | 7
x x x x x x x x x | 8
x x x x x x x x x | 9
</code></pre>
<p>Um die &quot;Rakete&quot; in die Position des Feldes &quot;fliegen&quot; zu lassen, habe ich mir gedacht, ich baue eine Funktion (StartRocket()), die ein Zweidimensionales Array zurückgibt. Geht das überhaupt? Wenn ja, ist es verständlich für einen Anfänger wie mich, oder sollte ich es lieber erstmal manuell machen?</p>
<p>Ich danke für die Aufmerksamkeit :p<br />
MFG</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2164475</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2164475</guid><dc:creator><![CDATA[klucki9]]></dc:creator><pubDate>Fri, 06 Jan 2012 12:19:20 GMT</pubDate></item><item><title><![CDATA[Reply to Funktion: Zweidimensionales Array zurückgeben on Fri, 06 Jan 2012 12:52:56 GMT]]></title><description><![CDATA[<p>guck dir mal std::vector an, damit sollte es gehen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2164484</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2164484</guid><dc:creator><![CDATA[pyhax]]></dc:creator><pubDate>Fri, 06 Jan 2012 12:52:56 GMT</pubDate></item><item><title><![CDATA[Reply to Funktion: Zweidimensionales Array zurückgeben on Fri, 06 Jan 2012 13:17:09 GMT]]></title><description><![CDATA[<p>Vom objektorientierten Ansatz her wäre es schöner kein 2 dimensionales Array mit den Koordinaten zurückzugeben sondern eine neue Datenstruktur. z.B. &quot;Punkt&quot;</p>
<pre><code>class Punkt
{
public:
 int x;
 int y;
}
</code></pre>
<p>StartRocket würde dann z.B. so aussehen</p>
<pre><code>Punkt StartRocket(int iPosX, int iPosY)
{
 Punkt p;
 p.x = iPoxX;
 p.y = iPoxY;

 return p;    
}
</code></pre>
<p>Es bleibt dir überlassen z.B. für die Klasse Punkt noch einen Konstruktor zu bauen, so dass du die Member eleganter initialisieren kannst. Der nächste Schritt wäre dann, für die Member Get und Set Methoden zu machen. IMHO bei so einfachen Klassen, die nur zur Datenhaltung da sind, aber Overkill.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2164493</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2164493</guid><dc:creator><![CDATA[Morle]]></dc:creator><pubDate>Fri, 06 Jan 2012 13:17:09 GMT</pubDate></item><item><title><![CDATA[Reply to Funktion: Zweidimensionales Array zurückgeben on Fri, 06 Jan 2012 13:43:44 GMT]]></title><description><![CDATA[<p>Morle, wieso überhaupt <code>class</code> ? Hier bietet sich doch <code>struct</code> an. Dann kannst du dir das <code>public</code> sparen, und es wird auch klarer, dass hier nur Datenhaltung praktiziert wird, und keine Funktionalität.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2164505</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2164505</guid><dc:creator><![CDATA[_matze]]></dc:creator><pubDate>Fri, 06 Jan 2012 13:43:44 GMT</pubDate></item><item><title><![CDATA[Reply to Funktion: Zweidimensionales Array zurückgeben on Fri, 06 Jan 2012 13:54:41 GMT]]></title><description><![CDATA[<p>Okay, danke Jungs.</p>
<pre><code class="language-cpp">struct STarget
{
	int PosX;
	int PosY;
};

class CRocket
{
private:
	int iPosTargetX, iPosTargetY;
	double dSpeed;
	double dDamage;
	double dRemoval;
	double dTimeToElim;
	unsigned int uiIdNumber;
	std::string sType;

	double CalculateTimeToElim()
	{
		return (this-&gt;dRemoval/this-&gt;dSpeed);
	}
public:
	CRocket(int iPosTargetX, int iPosTargetY, double dRemoval, unsigned int uiIdNumber)
	{
		this-&gt;iPosTargetX		= iPosTargetX;
		this-&gt;iPosTargetY		= iPosTargetY;
		this-&gt;dSpeed			= 8600;
		this-&gt;dDamage			= 999999;
		this-&gt;dRemoval			= dRemoval;
		this-&gt;dTimeToElim		= CalculateTimeToElim();
		this-&gt;uiIdNumber	    = uiIdNumber;
		this-&gt;sType				= &quot;AVR X8600T&quot;;
	}
	CRocket(int iPosTargetX, int iPosTargetY, double dRemoval, unsigned int uiIdNumber, std::string sType)
	{
		this-&gt;iPosTargetX		= iPosTargetX;
		this-&gt;iPosTargetY		= iPosTargetY;
		this-&gt;dSpeed			= 8600;
		this-&gt;dDamage			= 999999;
		this-&gt;dRemoval			= dRemoval;
		this-&gt;dTimeToElim		= CalculateTimeToElim();
		this-&gt;uiIdNumber	    = uiIdNumber;
		this-&gt;sType				= sType;
	}
	~CRocket() { }

	double GetTimeToElim()
	{
		return this-&gt;dTimeToElim;
	}
	int GetPosX()
	{
		return this-&gt;iPosTargetX;
	}
	int GetPosY()
	{
		return this-&gt;iPosTargetY;
	}
	STarget StartRocket(int iPosX, int iPosY)
	{
		STarget T1;
		T1.PosX = iPosX;
		T1.PosY = iPosY;
		return T1;
	}
};
</code></pre>
<p>Koordinaten werden gespeichert und Ziel zerstört :D.<br />
Aber eine letzte Frage bleibt mir für die Zukunft: Wie kann ich nun ein 2D-Array zurückgeben?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2164512</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2164512</guid><dc:creator><![CDATA[klucki9]]></dc:creator><pubDate>Fri, 06 Jan 2012 13:54:41 GMT</pubDate></item><item><title><![CDATA[Reply to Funktion: Zweidimensionales Array zurückgeben on Fri, 06 Jan 2012 14:03:30 GMT]]></title><description><![CDATA[<p>deklarier doch mal dein 2d array</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2164518</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2164518</guid><dc:creator><![CDATA[wedfgbh]]></dc:creator><pubDate>Fri, 06 Jan 2012 14:03:30 GMT</pubDate></item><item><title><![CDATA[Reply to Funktion: Zweidimensionales Array zurückgeben on Fri, 06 Jan 2012 14:04:18 GMT]]></title><description><![CDATA[<p>_matze schrieb:</p>
<blockquote>
<p>Morle, wieso überhaupt <code>class</code> ? Hier bietet sich doch <code>struct</code> an. Dann kannst du dir das <code>public</code> sparen, und es wird auch klarer, dass hier nur Datenhaltung praktiziert wird, und keine Funktionalität.</p>
</blockquote>
<p>Geschmackssache und Vorraussicht. Ich sagte ja, normalerweise würde *ich* wenigstens noch einen Konstruktor der Art &quot;Punkt(int x, int y)&quot; implementieren. Natürlich geht das auch bei structs, aber structs mit Funktionen sind IMHO schlechter Stil.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2164520</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2164520</guid><dc:creator><![CDATA[Morle]]></dc:creator><pubDate>Fri, 06 Jan 2012 14:04:18 GMT</pubDate></item><item><title><![CDATA[Reply to Funktion: Zweidimensionales Array zurückgeben on Fri, 06 Jan 2012 14:06:50 GMT]]></title><description><![CDATA[<p>Das ist glaube ich nicht so einfach. Arrays zurückszugeben oder als Parameter zu übergeben ist keine so gute Idee. Verwende besser std::vector, dann ist das übergeben und zurückgeben einfacher <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/2164521</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2164521</guid><dc:creator><![CDATA[pyhax]]></dc:creator><pubDate>Fri, 06 Jan 2012 14:06:50 GMT</pubDate></item><item><title><![CDATA[Reply to Funktion: Zweidimensionales Array zurückgeben on Fri, 06 Jan 2012 14:10:09 GMT]]></title><description><![CDATA[<p>wedfgbh schrieb:</p>
<blockquote>
<p>deklarier doch mal dein 2d array</p>
</blockquote>
<pre><code class="language-cpp">char acField[9][9];
</code></pre>
<p>Und jetzt? <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/2164523</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2164523</guid><dc:creator><![CDATA[klucki9]]></dc:creator><pubDate>Fri, 06 Jan 2012 14:10:09 GMT</pubDate></item><item><title><![CDATA[Reply to Funktion: Zweidimensionales Array zurückgeben on Fri, 06 Jan 2012 15:14:59 GMT]]></title><description><![CDATA[<p>klucki9 schrieb:</p>
<blockquote>
<p>wedfgbh schrieb:</p>
<blockquote>
<p>deklarier doch mal dein 2d array</p>
</blockquote>
<pre><code class="language-cpp">char acField[9][9];
</code></pre>
<p>Und jetzt? <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>
</blockquote>
<p>Wenn du dein Array nur so auf dem Stack anlegst, macht es keinen Sinn es zurück zu geben, weil es wieder freigegeben wird, sobald die Funktion verlassen wird. Du könntest ein char** Array mit new anlegen und das zurück geben, aber std::vector ist viel einfacher zu verwenden. Außerdem kann man ein 2D Array auch immer als 1D Array darstellen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2164556</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2164556</guid><dc:creator><![CDATA[wedfgbh]]></dc:creator><pubDate>Fri, 06 Jan 2012 15:14:59 GMT</pubDate></item><item><title><![CDATA[Reply to Funktion: Zweidimensionales Array zurückgeben on Fri, 06 Jan 2012 15:32:15 GMT]]></title><description><![CDATA[<p>Okay danke <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="😉"
    /> Thema erledigt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2164562</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2164562</guid><dc:creator><![CDATA[klucki9]]></dc:creator><pubDate>Fri, 06 Jan 2012 15:32:15 GMT</pubDate></item></channel></rss>