<?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[Array als privat deklariert, im Konstruktor ausfüllen?]]></title><description><![CDATA[<p>Hallo,</p>
<p>am Besten mach ich gleich ein Beispiel um mein Problem zu erläutern:</p>
<pre><code class="language-cpp">class test {
  public:
    test() { array[2] = {&quot;hi&quot;, &quot;du&quot;}; }
  private:
    string array[2];
};
</code></pre>
<p>Dies klappt leider nicht, gibt es einen anderen Weg dies zu tun?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/258339/array-als-privat-deklariert-im-konstruktor-ausfüllen</link><generator>RSS for Node</generator><lastBuildDate>Wed, 09 Sep 2026 10:35:03 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/258339.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 09 Jan 2010 15:30:30 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Array als privat deklariert, im Konstruktor ausfüllen? on Sat, 09 Jan 2010 15:30:44 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>am Besten mach ich gleich ein Beispiel um mein Problem zu erläutern:</p>
<pre><code class="language-cpp">class test {
  public:
    test() { array[2] = {&quot;hi&quot;, &quot;du&quot;}; }
  private:
    string array[2];
};
</code></pre>
<p>Dies klappt leider nicht, gibt es einen anderen Weg dies zu tun?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1835625</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1835625</guid><dc:creator><![CDATA[Samyboy]]></dc:creator><pubDate>Sat, 09 Jan 2010 15:30:44 GMT</pubDate></item><item><title><![CDATA[Reply to Array als privat deklariert, im Konstruktor ausfüllen? on Sat, 09 Jan 2010 15:31:12 GMT]]></title><description><![CDATA[<p>nein</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1835626</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1835626</guid><dc:creator><![CDATA[asdfasd]]></dc:creator><pubDate>Sat, 09 Jan 2010 15:31:12 GMT</pubDate></item><item><title><![CDATA[Reply to Array als privat deklariert, im Konstruktor ausfüllen? on Sat, 09 Jan 2010 15:43:01 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">class test {
  public:
    test() { array = {&quot;hi&quot;, &quot;du&quot;}; }
  private:
    string array[2];
};
</code></pre>
<p>oder</p>
<pre><code class="language-cpp">class test {
  public:
    test() { array[0] = &quot;hi&quot;; array[1] = &quot;du&quot;; }
  private:
    string array[2];
};
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1835632</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1835632</guid><dc:creator><![CDATA[hjkhjk]]></dc:creator><pubDate>Sat, 09 Jan 2010 15:43:01 GMT</pubDate></item><item><title><![CDATA[Reply to Array als privat deklariert, im Konstruktor ausfüllen? on Sat, 09 Jan 2010 16:15:20 GMT]]></title><description><![CDATA[<p>hjkhjk schrieb:</p>
<blockquote>
<pre><code class="language-cpp">class test {
  public:
    test() { array = {&quot;hi&quot;, &quot;du&quot;}; }
  private:
    string array[2];
};
</code></pre>
<p>oder</p>
<pre><code class="language-cpp">class test {
  public:
    test() { array[0] = &quot;hi&quot;; array[1] = &quot;du&quot;; }
  private:
    string array[2];
};
</code></pre>
</blockquote>
<p>Bist du sicher die erste VErsion klappt? Tut es leider nicht bei mir...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1835655</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1835655</guid><dc:creator><![CDATA[Samyboy]]></dc:creator><pubDate>Sat, 09 Jan 2010 16:15:20 GMT</pubDate></item><item><title><![CDATA[Reply to Array als privat deklariert, im Konstruktor ausfüllen? on Sat, 09 Jan 2010 17:03:46 GMT]]></title><description><![CDATA[<p>Die erste Verison ist falsch. Du kannst so ein Array nicht direkt Initialisieren. Sondern nur Objekt für Objekt im Konstruktorrumpf (nicht in der initialisierungsliste)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1835708</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1835708</guid><dc:creator><![CDATA[asdfasdf]]></dc:creator><pubDate>Sat, 09 Jan 2010 17:03:46 GMT</pubDate></item><item><title><![CDATA[Reply to Array als privat deklariert, im Konstruktor ausfüllen? on Sat, 09 Jan 2010 20:33:45 GMT]]></title><description><![CDATA[<p>Danke für die Aufklärung!</p>
<p>Hab nochmals ne Frage mit Arrays, ich versuche gerade ein eindimensionales Array als Rückgabewert einer Funktion zu deklarieren, dies möchte einfach nicht klappen!</p>
<p>Hat jemand irgend ne Idee wie man das richtig macht?</p>
<pre><code class="language-cpp">#include &lt;string&gt;
#include &lt;iostream&gt;

using namespace std;

int[2] returnMe() { // int* returnMe() klappt auch nicht
  int array[2] = {&quot;hi&quot;, &quot;du&quot;};
  return array;
}

int main() {
  int array[2];
  array = returnMe();

  cout &lt;&lt; array[0] &lt;&lt; array[1] &lt;&lt; endl;

  cin.get();
  return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1835932</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1835932</guid><dc:creator><![CDATA[Samyboy]]></dc:creator><pubDate>Sat, 09 Jan 2010 20:33:45 GMT</pubDate></item><item><title><![CDATA[Reply to Array als privat deklariert, im Konstruktor ausfüllen? on Sat, 09 Jan 2010 20:54:12 GMT]]></title><description><![CDATA[<p>Was passiert denn, wenn du das Ergebnis ausgiebst? Es ist 100%tig undefiniert. Das Array wird in der Funktion definiert und existiert somit nur innerhalb dieses Scopes. Nach Verlassen der Funktion verschwindet das erstellte Array vom Stack und dein Pointer zeigt auf einen Speicherbereich, das nicht dem Programm gehört. Alternativ kannst du das Array auf dem Heap alloziieren:</p>
<pre><code class="language-cpp">int* array(int size) {
   return new int[size];
}

int* arr = array(5);
arr[0] = 5;
delete [] arr;
</code></pre>
<p>Über den Sinn eines solchen Unterfangens lässt sich streiten.</p>
<p>Edit: weil es Nexus gerade unten angesprochen hat, dieses Beispiel hat Nachteile:</p>
<p>a) Ein Programmierer kann das delete schnell vergessen, da er ja kein new sieht.<br />
b) Es ist kein bisschen exceptionsicher. Wenn eine Exception geworfen wird, kann man sich sicher sein, dass kein delete aufgerufen wird --&gt; Memory Leak</p>
<p>Wenn man aber tatsächlich Ressourcen in Form eines Heaparrays benötigt, gibt es von Boost AFAIR einen Smart-Pointer für Arrays, die dank Stackunwinding automatisch gelöscht werden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1835940</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1835940</guid><dc:creator><![CDATA[Ad aCTa]]></dc:creator><pubDate>Sat, 09 Jan 2010 20:54:12 GMT</pubDate></item><item><title><![CDATA[Reply to Array als privat deklariert, im Konstruktor ausfüllen? on Sat, 09 Jan 2010 20:50:06 GMT]]></title><description><![CDATA[<p>Samyboy schrieb:</p>
<blockquote>
<p>Hab nochmals ne Frage mit Arrays, ich versuche gerade ein eindimensionales Array als Rückgabewert einer Funktion zu deklarieren, dies möchte einfach nicht klappen!</p>
<p>Hat jemand irgend ne Idee wie man das richtig macht?</p>
</blockquote>
<p>Da gibts mehrere Möglichkeiten. Zu Ad aCTas Beispiel würde ich allerdings nicht raten.</p>
<ul>
<li>Arbeite mit dem Array-Wrapper <code>std::tr1::array</code> , der Kopiersemantik unterstützt.</li>
<li>Arbeite mit <code>std::vector</code> .</li>
<li>Schreibe dir eine Funktion, die einen Zeiger auf Anfang und Ende des Arrays verlangt und es befüllt (ganz im Iterator-Stil).</li>
</ul>
<p>Ich rate zu Punkt 1 oder 2, die kannst du immer noch mit einer Funktion befüllen. Oder du lässt dir von einer Funktion gleich ein Objekt zurückgeben, mit dem du deinen Container initialisierst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1835947</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1835947</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Sat, 09 Jan 2010 20:50:06 GMT</pubDate></item><item><title><![CDATA[Reply to Array als privat deklariert, im Konstruktor ausfüllen? on Sun, 10 Jan 2010 09:07:24 GMT]]></title><description><![CDATA[<p>Danke!</p>
<p>Werde mir mal die Boost Library näher anschauen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1836061</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1836061</guid><dc:creator><![CDATA[Samyboy]]></dc:creator><pubDate>Sun, 10 Jan 2010 09:07:24 GMT</pubDate></item><item><title><![CDATA[Reply to Array als privat deklariert, im Konstruktor ausfüllen? on Sun, 10 Jan 2010 09:45:14 GMT]]></title><description><![CDATA[<p>Samyboy schrieb:</p>
<blockquote>
<p>Danke!</p>
<p>Werde mir mal die Boost Library näher anschauen.</p>
</blockquote>
<p>Machs doch einfach mit der STL.<br />
std::vector</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1836072</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1836072</guid><dc:creator><![CDATA[Icematix]]></dc:creator><pubDate>Sun, 10 Jan 2010 09:45:14 GMT</pubDate></item><item><title><![CDATA[Reply to Array als privat deklariert, im Konstruktor ausfüllen? on Sun, 10 Jan 2010 09:51:48 GMT]]></title><description><![CDATA[<p>Icematix schrieb:</p>
<blockquote>
<p>Samyboy schrieb:</p>
<blockquote>
<p>Danke!</p>
<p>Werde mir mal die Boost Library näher anschauen.</p>
</blockquote>
<p>Machs doch einfach mit der STL.<br />
std::vector</p>
</blockquote>
<p>Nunja vectoren sind ja dynamische Arrays, ich brauche aber in meinem Fall kein dynamisches. Soll ich trotzdem Vector verwenden? Vectoren sind toll xD</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1836079</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1836079</guid><dc:creator><![CDATA[Samyboy]]></dc:creator><pubDate>Sun, 10 Jan 2010 09:51:48 GMT</pubDate></item><item><title><![CDATA[Reply to Array als privat deklariert, im Konstruktor ausfüllen? on Sun, 10 Jan 2010 09:55:12 GMT]]></title><description><![CDATA[<blockquote>
<p>&gt; ich brauche aber in meinem Fall kein dynamisches.</p>
</blockquote>
<p>Nein? Dann nimm std::tr1::array (falls vorhanden), wie Nexus sagte, und kopiere es als Rückgabewert. Dieses Array basiert auf Stack-Speicher und ist so komfortabel wie std::vector, nur statisch.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1836081</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1836081</guid><dc:creator><![CDATA[Ad aCTa]]></dc:creator><pubDate>Sun, 10 Jan 2010 09:55:12 GMT</pubDate></item></channel></rss>