<?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[Klasse Variable Returnwert]]></title><description><![CDATA[<p>Hallo,</p>
<p>Ist es möglich oder doch eher gefährlich, innerhalb einer Klasse eine Variable anzulegen und diese als Return-Wert an eine andere Klasse zu übergeben?</p>
<pre><code class="language-cpp">char *Testklasse::Test(void)
{
   char ArrClass[20]; 

   //ArrClass mit daten füllen

   return(&amp;ArrClass);
}
</code></pre>
<p>Ist das solange sicher, solange ich sicher stellen kann, das der Konstruktur dieser Klasse nicht aufgerufen wird? Bzw. zeugt es von gutem Programmierstiel auf sowas komplett zu verzichten und statt dessen im Headerfile der Klasse die Variable ArrClass zu platzieren?</p>
<p>Gruß<br />
Lukas</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/273928/klasse-variable-returnwert</link><generator>RSS for Node</generator><lastBuildDate>Thu, 27 Aug 2026 21:45:01 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/273928.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 15 Sep 2010 17:26:16 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Klasse Variable Returnwert on Wed, 15 Sep 2010 17:26:16 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>Ist es möglich oder doch eher gefährlich, innerhalb einer Klasse eine Variable anzulegen und diese als Return-Wert an eine andere Klasse zu übergeben?</p>
<pre><code class="language-cpp">char *Testklasse::Test(void)
{
   char ArrClass[20]; 

   //ArrClass mit daten füllen

   return(&amp;ArrClass);
}
</code></pre>
<p>Ist das solange sicher, solange ich sicher stellen kann, das der Konstruktur dieser Klasse nicht aufgerufen wird? Bzw. zeugt es von gutem Programmierstiel auf sowas komplett zu verzichten und statt dessen im Headerfile der Klasse die Variable ArrClass zu platzieren?</p>
<p>Gruß<br />
Lukas</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1953076</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1953076</guid><dc:creator><![CDATA[Lukas B.]]></dc:creator><pubDate>Wed, 15 Sep 2010 17:26:16 GMT</pubDate></item><item><title><![CDATA[Reply to Klasse Variable Returnwert on Wed, 15 Sep 2010 17:40:32 GMT]]></title><description><![CDATA[<p>Sowas ist von Grund auf böse! <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="😉"
    /> Dein Array wird lokal auf dem Stack angelegt und ist auch nur innerhalb seines Bereichs gültig (in dem Fall bis zur schließenden, geschweiften Klammer der Funktion). Einen Zeiger darauf zurückzugeben, ist also Murks. Dabei ist es völlig egal, ob es sich nun um eine normale Funktion oder die Methode einer Klasse handelt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1953083</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1953083</guid><dc:creator><![CDATA[_matze]]></dc:creator><pubDate>Wed, 15 Sep 2010 17:40:32 GMT</pubDate></item><item><title><![CDATA[Reply to Klasse Variable Returnwert on Wed, 15 Sep 2010 17:44:15 GMT]]></title><description><![CDATA[<p>_matze schrieb:</p>
<blockquote>
<p>Sowas ist von Grund auf böse! <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="😉"
    /> Dein Array wird lokal auf dem Stack angelegt und ist auch nur innerhalb seines Bereichs gültig (in dem Fall bis zur schließenden, geschweiften Klammer der Funktion). Einen Zeiger darauf zurückzugeben, ist also Murks. Dabei ist es völlig egal, ob es sich nun um eine normale Funktion oder die Methode einer Klasse handelt.</p>
</blockquote>
<p>ok, welche freundlichen Methoden wendet man dann in einem solchen Fall an?</p>
<pre><code class="language-cpp">class Testklasse
{
  char ArrClass[20]; 

};
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1953085</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1953085</guid><dc:creator><![CDATA[Lukas B.]]></dc:creator><pubDate>Wed, 15 Sep 2010 17:44:15 GMT</pubDate></item><item><title><![CDATA[Reply to Klasse Variable Returnwert on Wed, 15 Sep 2010 17:58:42 GMT]]></title><description><![CDATA[<p>Benutz <code>std::vector</code> , <code>boost::array</code> oder das Array aus tr1 und dann gibtst du eine Kopie zurück.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1953096</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1953096</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Wed, 15 Sep 2010 17:58:42 GMT</pubDate></item><item><title><![CDATA[Reply to Klasse Variable Returnwert on Wed, 15 Sep 2010 17:59:57 GMT]]></title><description><![CDATA[<p>Ein SafePointer würde helfen, oder du deklarierst die Variable als static um den User dann die Möglichkeit zu geben, das Objekt zu kopieren.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1953097</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1953097</guid><dc:creator><![CDATA[Fallen Angel]]></dc:creator><pubDate>Wed, 15 Sep 2010 17:59:57 GMT</pubDate></item><item><title><![CDATA[Reply to Klasse Variable Returnwert on Wed, 15 Sep 2010 18:00:05 GMT]]></title><description><![CDATA[<p>Lukas B. schrieb:</p>
<blockquote>
<p>ok, welche freundlichen Methoden wendet man dann in einem solchen Fall an?</p>
</blockquote>
<p>Einen vector&lt;char&gt; oder einen string. Beide sind nämlich kopierbar und leisten ungefähr das gleiche wie ein Array.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1953098</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1953098</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Wed, 15 Sep 2010 18:00:05 GMT</pubDate></item><item><title><![CDATA[Reply to Klasse Variable Returnwert on Wed, 15 Sep 2010 18:33:04 GMT]]></title><description><![CDATA[<p>Lukas B. schrieb:</p>
<blockquote>
<p>Hallo,</p>
<p>Ist es möglich oder doch eher gefährlich, innerhalb einer Klasse eine Variable anzulegen und diese als Return-Wert an eine andere Klasse zu übergeben?</p>
</blockquote>
<p>Wenn du mit &quot;innerhalb einer Klasse&quot; eigentlich (entsprechend deinem Beispiel) &quot;innerhalb einer (Klassen)Funktion&quot; meinst:</p>
<p>Ja, das tust du aber hier nicht, dein Beispiel lässt sich nicht übersetzen. Falls du die Adresse (einfach ArrClass oder &amp;ArrClass[0]) zurückgeben wolltest, so ist das ein Fehler, da die Variable ja am Ende nicht mehr existiert.</p>
<p>So wäre es erlaubt:</p>
<pre><code class="language-cpp">int Testklasse::Test(void)
{
   int a = 10;

   return a;
}
</code></pre>
<p>Statt int kannst du dann auch std::string oder alle anderen von den Vorpostern genannten Datentypen nehmen. Für ein C-Array geht das aber nicht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1953121</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1953121</guid><dc:creator><![CDATA[manni66]]></dc:creator><pubDate>Wed, 15 Sep 2010 18:33:04 GMT</pubDate></item></channel></rss>