<?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[wie erstelle ich: dyn. array of long integer, größe: m_nSitze[1]]]></title><description><![CDATA[<p>ich sitze grad vor einem UML und bin mir nicht sicher wie ich folgende Anweisung umsetzten soll:</p>
<pre><code class="language-cpp">dyn. array of long integer, größe: m_nSitze[1]
</code></pre>
<p>ich hab auch schon ein wenig recherchiert und zu dynamischen array's folgendes gefunden:</p>
<pre><code class="language-cpp">char* c;
c=new char[j];
</code></pre>
<p>..jetzt ist mir nicht ganz klar inwieweit dieser code meine UML Anfrage abdeckt?</p>
<p>wäre dankbar für eure hilfe! <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/topic/212430/wie-erstelle-ich-dyn-array-of-long-integer-größe-m_nsitze-1</link><generator>RSS for Node</generator><lastBuildDate>Wed, 14 Oct 2026 21:21:32 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/212430.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 06 May 2008 11:35:55 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to wie erstelle ich: dyn. array of long integer, größe: m_nSitze[1] on Tue, 06 May 2008 11:35:55 GMT]]></title><description><![CDATA[<p>ich sitze grad vor einem UML und bin mir nicht sicher wie ich folgende Anweisung umsetzten soll:</p>
<pre><code class="language-cpp">dyn. array of long integer, größe: m_nSitze[1]
</code></pre>
<p>ich hab auch schon ein wenig recherchiert und zu dynamischen array's folgendes gefunden:</p>
<pre><code class="language-cpp">char* c;
c=new char[j];
</code></pre>
<p>..jetzt ist mir nicht ganz klar inwieweit dieser code meine UML Anfrage abdeckt?</p>
<p>wäre dankbar für eure hilfe! <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/1504142</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1504142</guid><dc:creator><![CDATA[Sl4yer88]]></dc:creator><pubDate>Tue, 06 May 2008 11:35:55 GMT</pubDate></item><item><title><![CDATA[Reply to wie erstelle ich: dyn. array of long integer, größe: m_nSitze[1] on Tue, 06 May 2008 11:52:47 GMT]]></title><description><![CDATA[<p><a href="http://www.brpreiss.com/books/opus4/html/page80.html" rel="nofollow">http://www.brpreiss.com/books/opus4/html/page80.html</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1504152</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1504152</guid><dc:creator><![CDATA[_matze]]></dc:creator><pubDate>Tue, 06 May 2008 11:52:47 GMT</pubDate></item><item><title><![CDATA[Reply to wie erstelle ich: dyn. array of long integer, größe: m_nSitze[1] on Tue, 06 May 2008 11:53:10 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>Wenn du den Typ char durch long integer ersetzt dann ja.<br />
Aber ich würde dir empfehlen lieber die selbstverwaltenden C++ Container zu nehmen, in deinem Fall</p>
<pre><code class="language-cpp">#include &lt;vector&gt;
...
std::vector&lt;long int&gt;
</code></pre>
<p>bis bald<br />
akari</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1504153</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1504153</guid><dc:creator><![CDATA[akari]]></dc:creator><pubDate>Tue, 06 May 2008 11:53:10 GMT</pubDate></item><item><title><![CDATA[Reply to wie erstelle ich: dyn. array of long integer, größe: m_nSitze[1] on Tue, 06 May 2008 11:55:21 GMT]]></title><description><![CDATA[<p>Im Moment hast du noch ein Array vom Typen char, du willst aber long integer.</p>
<p>Und m_nSitze[1] soll wohl j sein, nicht?</p>
<p>Falls m_nSitze[1] eine Konstante ist, dann kannst du die als const deklarieren und auch direkt erstellen. (Obwohl ich das jetzt mal nicht vermute).</p>
<p>Da du noch nicht so viel Erfahrung scheinst zu haben, sei hier noch erwähnt, dass in C++, wenn du Speicher per new anforderst, den du auch wieder freigeben musst. (delete c[] in deinem Fall).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1504155</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1504155</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Tue, 06 May 2008 11:55:21 GMT</pubDate></item><item><title><![CDATA[Reply to wie erstelle ich: dyn. array of long integer, größe: m_nSitze[1] on Tue, 06 May 2008 13:03:57 GMT]]></title><description><![CDATA[<p>drakon schrieb:</p>
<blockquote>
<p>Im Moment hast du noch ein Array vom Typen char, du willst aber long integer.</p>
<p>Und m_nSitze[1] soll wohl j sein, nicht?</p>
<p>Falls m_nSitze[1] eine Konstante ist, dann kannst du die als const deklarieren und auch direkt erstellen. (Obwohl ich das jetzt mal nicht vermute).</p>
<p>Da du noch nicht so viel Erfahrung scheinst zu haben, sei hier noch erwähnt, dass in C++, wenn du Speicher per new anforderst, den du auch wieder freigeben musst. (delete c[] in deinem Fall).</p>
</blockquote>
<p>hi,</p>
<p>danke für eure schnellen antworten <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /></p>
<p>..das mit dem long statt char is klar <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>
<p>ich poste mal die klasse damit es besser verständlich ist:</p>
<pre><code class="language-cpp">#include &lt;iostream.h&gt;
#include &lt;string.h&gt;

using namespace std;

class CFlug
{
      private:
            string m_sAbflugdatum, m_sAbflugzeit;
      protected:
            string m_sID;
            long m_nAbflugairportID, m_nZielairportID, m_nFlugzeugID;
            (int)m_nSitze[3];
            (int)m_nresSitze[3];
            #m_pBuchung1: dyn. array of long integer, Größe: m_nSize[1]
            #m_pBuchung2: dyn. array of long integer, Größe:
      public:
           CFlug();
           int flugReservieren(long nTicketID, int nKlasse);
           int ticketErstellen(long nTicketID);   
}
</code></pre>
<p>mir geht es um die 2 mit # beginnenden Zeilen, ich weis nicht wie ich diese umsetzen soll?? (sind originalgetreu der Aufgabe entnommen)</p>
<p>pls help</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1504207</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1504207</guid><dc:creator><![CDATA[Sl4yer88]]></dc:creator><pubDate>Tue, 06 May 2008 13:03:57 GMT</pubDate></item><item><title><![CDATA[Reply to wie erstelle ich: dyn. array of long integer, größe: m_nSitze[1] on Tue, 06 May 2008 13:27:52 GMT]]></title><description><![CDATA[<p>Sl4yer88 schrieb:</p>
<blockquote>
<p>ich poste mal die klasse damit es besser verständlich ist:</p>
</blockquote>
<p>Erstmal grundlegendes nicht konkret zu deinem Problem</p>
<p>1. NIEMALS using namespace innerhalb eines Headers<br />
2. Nach dem C++ Standard von nunmehr 1998 gibt es weder iostream.h noch string.h - entferne bei den includes der Standardbibliothek bitte das .h<br />
3. Solltest du wirklich mit dynamischer Speicherverwaltung (sprich Zeigern und new/delete) arbeiten benötigt deine Klasse auch einen überschriebenen Kopierkonstruktor und Zuweisungsoperator oder alternativ müssen diese unterbunden werden (private ohne Deklaration).<br />
4. Ist deine Klasse wirklich als Basisklasse vorgesehen (das protected deutet es an), wenn ja bitte einen virtuellen Destruktor verwenden!<br />
5. Am Ende der Klasse benötigt das abschließende } ein ;... &quot;class CFlug{...};&quot;</p>
<p>cu André<br />
P.S: 6. Zur voraussichtlichen Qualität deines Lehrers/Dozenten... erschlage die Packungsbeilage und kontaktiere deinen Arzt oder Apotheker...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1504218</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1504218</guid><dc:creator><![CDATA[asc]]></dc:creator><pubDate>Tue, 06 May 2008 13:27:52 GMT</pubDate></item><item><title><![CDATA[Reply to wie erstelle ich: dyn. array of long integer, größe: m_nSitze[1] on Tue, 06 May 2008 15:52:06 GMT]]></title><description><![CDATA[<p>asc schrieb:</p>
<blockquote>
<p>Sl4yer88 schrieb:</p>
<blockquote>
<p>ich poste mal die klasse damit es besser verständlich ist:</p>
</blockquote>
<p>Erstmal grundlegendes nicht konkret zu deinem Problem</p>
<p>1. NIEMALS using namespace innerhalb eines Headers<br />
2. Nach dem C++ Standard von nunmehr 1998 gibt es weder iostream.h noch string.h - entferne bei den includes der Standardbibliothek bitte das .h<br />
3. Solltest du wirklich mit dynamischer Speicherverwaltung (sprich Zeigern und new/delete) arbeiten benötigt deine Klasse auch einen überschriebenen Kopierkonstruktor und Zuweisungsoperator oder alternativ müssen diese unterbunden werden (private ohne Deklaration).<br />
4. Ist deine Klasse wirklich als Basisklasse vorgesehen (das protected deutet es an), wenn ja bitte einen virtuellen Destruktor verwenden!<br />
5. Am Ende der Klasse benötigt das abschließende } ein ;... &quot;class CFlug{...};&quot;</p>
<p>cu André<br />
P.S: 6. Zur voraussichtlichen Qualität deines Lehrers/Dozenten... erschlage die Packungsbeilage und kontaktiere deinen Arzt oder Apotheker...</p>
</blockquote>
<p>hi andré,</p>
<p>1. ich war in keiner header datei...<br />
2. wird uns das in der schule noch so beigebracht tschuldige<br />
3. versteh ich nicht ganz sry<br />
4. virtuellen Destruktor??(ich google mal <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="🙄"
    /> )<br />
5. ja das ist mir bewusst danke!</p>
<p><a href="http://img294.imageshack.us/img294/6119/umlcopyno6.jpg" rel="nofollow">http://img294.imageshack.us/img294/6119/umlcopyno6.jpg</a></p>
<p>wie füge ich ein bild ein... <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f62e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_open_mouth"
      title=":open_mouth:"
      alt="😮"
    /></p>
<p>na egal, auf dem Bild ist jedenfalls die Aufgabe(UML) abgebildet die ich versucht habe umzusetzen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1504313</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1504313</guid><dc:creator><![CDATA[Sl4yer88]]></dc:creator><pubDate>Tue, 06 May 2008 15:52:06 GMT</pubDate></item><item><title><![CDATA[Reply to wie erstelle ich: dyn. array of long integer, größe: m_nSitze[1] on Tue, 06 May 2008 20:28:21 GMT]]></title><description><![CDATA[<p>Sl4yer88 schrieb:</p>
<blockquote>
<p>...</p>
</blockquote>
<p>1. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f62e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_open_mouth"
      title=":open_mouth:"
      alt="😮"
    /> (Wie willst du denn die Klasse in einer anderen Übersetzungseinheit benutzen?!</p>
<p>2. Schlecht.</p>
<p>3. Das Problem ist, dass, wenn du dieses Objekt kopierst, wird der Zeiger, den du per new bekommst ebenfalls lediglich kopiert. Das heisst, dass du dann 2 Objekte hast, die auf den gleichen Speicherbereich zeigen. Und wenn nun das erste Objekt zerstört wird, wird der Speicher freigegeben und du hast bei deinem anderen Objekt ein Problem, weil dieser auf einen ungültigen Bereich zeigt. Das heisst, dass dein Programm spätestens bei dem zerstören des 2 Objektes crasht. (Versuchs ruhig mal aus, dann siehst du, was passiert.)</p>
<pre><code class="language-cpp">clude &lt;iostream&gt;
#include &lt;string&gt;

using namespace std;

class CFlug
{
      private:
            string m_sAbflugdatum, m_sAbflugzeit;
      protected:
            string m_sID;
            long m_nAbflugairportID, m_nZielairportID, m_nFlugzeugID;
            int m_nSitze[3];
            int m_nresSitze[3];
            std::vector&lt;long int&gt;   m_pBuchung1;
            long int*               m_pBuchung2;

            //#m_pBuchung1: dyn. array of long integer, Größe: m_nSize[1]
            //#m_pBuchung2: dyn. array of long integer, Größe:
      public:
           CFlug(); // Hier kommt noch die Initialisierung von m_pBuchung1/2 rein.
           virtual ~CFlug ();//Hier schön aufräumen
           CFlug (CFlug const &amp; r); //copy ctor (brauchst du wegen new, vector wird richtig kopiert..)
           int flugReservieren(long nTicketID, int nKlasse);
           int ticketErstellen(long nTicketID);  
};
</code></pre>
<p>Dir steht frei, welche Möglichkeit du nutzen kannst. Jedoch ist die std::vector Variante weit aus komfortabler und sicherer.</p>
<p>Bild einfügen geht, glaube ich nicht. (Hier noch für die faulen der Link. <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="😉"
    /><br />
<a href="http://img294.imageshack.us/img294/6119/umlcopyno6.jpg" rel="nofollow">http://img294.imageshack.us/img294/6119/umlcopyno6.jpg</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1504519</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1504519</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Tue, 06 May 2008 20:28:21 GMT</pubDate></item><item><title><![CDATA[Reply to wie erstelle ich: dyn. array of long integer, größe: m_nSitze[1] on Wed, 07 May 2008 05:48:39 GMT]]></title><description><![CDATA[<p>drakon schrieb:</p>
<blockquote>
<p>1. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f62e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_open_mouth"
      title=":open_mouth:"
      alt="😮"
    /> (Wie willst du denn die Klasse in einer anderen Übersetzungseinheit benutzen?!</p>
</blockquote>
<p>Mein Verdacht: alles steht in der einzigen Sourcedatei xD</p>
<p>drakon schrieb:</p>
<blockquote>
<p>2. Schlecht.</p>
</blockquote>
<p>Nich nur schlecht, so langsam ist dieser Grund auch nicht mehr akzeptierbar. Mögen einige Lehrer keine Motivation zum Lernen haben (grade in einen ihnen fremden Bereich), so sollten sie dennoch in der Lage sein sich zumindestens alle 5 Jahre mal Grundlegend über Änderungen zu informieren.</p>
<p>drakon schrieb:</p>
<blockquote>
<p>3. Das Problem ist, dass, wenn du dieses Objekt kopierst, wird der Zeiger, den du per new bekommst ebenfalls lediglich kopiert. Das heisst, dass du dann 2 Objekte hast, die auf den gleichen Speicherbereich zeigen. Und wenn nun das erste Objekt zerstört wird, wird der Speicher freigegeben und du hast bei deinem anderen Objekt ein Problem, weil dieser auf einen ungültigen Bereich zeigt. Das heisst, dass dein Programm spätestens bei dem zerstören des 2 Objektes crasht. (Versuchs ruhig mal aus, dann siehst du, was passiert.)</p>
</blockquote>
<p>Ich zeige dies am besten an einen Beispiel:</p>
<pre><code class="language-cpp">class A
{
  private:
    long* dynamischesArray;
  public:
    A()
    : value(new long[20])
    {}

    ~A()
    {
      delete[] dynamischesArray;
    }
};

int main()
{
  A a1;
  A a2 = a1;
} // &lt;-- Crash
</code></pre>
<p>So... also grundlegend:<br />
Zu jedem new gehört ein delete, zu jedem new[] ein delete[].<br />
An diese Regel haben wir uns scheinbar gehalten, aber leider nur scheinbar...</p>
<p>Grundsätzlich gibt es 4 wichtige Methoden die mit der Objekterzeugung und -zuweisung zu tun haben, und die auch wenn man sie selbst nicht schreibt automatisch generiert werden:</p>
<pre><code class="language-cpp">class A
{
  A(); // Konstruktor
  ~A(); // Destruktor
  A(A const &amp;); // Kopierkonstruktor
  A&amp; operator=(A const &amp;); // Zuweisungsoperator
};
</code></pre>
<p>Wann wird nun welcher davon aufgerufen, und was tun die Automatisch generierten:</p>
<pre><code class="language-cpp">int main()
{
  A a1; // Konstruktor
  A a2(a1); // Kopierkonstruktor
  A a3 = a1; // Für Anfänger wider erwarten: Auch Kopierkonstruktor (ist Initialisierung)
  a2 = a3; // Zuweisungsoperator
} // &lt;-- Destruktoren (In umgekehrter Reihenfolge der Instanziierung
</code></pre>
<p>So, nun haben wir schonmal den ersten Punkt geklärt, nun zum Zweiten: Was machen die automatisch generierten Operatoren?</p>
<p>Grundsätzlich wird beim Kopierkonstruktor und Zuweisungsoperator, wenn nicht selbst geschrieben, eine sogenannte flache Kopie angelegt. Dies entspricht einer bitweisen Kopie. Im Falle von Zeigern bedeutet dies, das der Zeiger kopiert wird, sprich: beide Zeiger zeigen anschließend auf die gleiche Speicheradresse.</p>
<p>Nun wird der Destruktor von dem ersten aufgerufen, das delete[] erfolgt und löscht den (nunmehr gemeinsamen) Speicherbereich. Nun wird der zweite Destruktor gelöscht, und löscht nun den Speicherbereich ebenso, oder greift darauf zu =&gt; Undefiniertes Verhalten, Access Violation...</p>
<p>Also müssen wir uns etwas einfallen lassen. Das heißt im Grunde man schreibt die beiden weiteren Operatoren auch noch, sorgt dafür das nicht flache Kopien angelegt werden, sondern auch die dahinter liegenden Speicherbereiche kopiert werden, und hat anschließend das Problem auch nicht mehr...</p>
<p>cu André</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1504614</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1504614</guid><dc:creator><![CDATA[asc]]></dc:creator><pubDate>Wed, 07 May 2008 05:48:39 GMT</pubDate></item><item><title><![CDATA[Reply to wie erstelle ich: dyn. array of long integer, größe: m_nSitze[1] on Wed, 07 May 2008 15:34:14 GMT]]></title><description><![CDATA[<p>asc schrieb:</p>
<blockquote>
<p>...</p>
</blockquote>
<p>Zu 1: Ja, das war mir schon klar, war aber ein Hinweis, dass er sieht, wo das Problem dabei ist. <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>
<p>Zu 3: Schöne erläuterung des Problems. <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/1504998</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1504998</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Wed, 07 May 2008 15:34:14 GMT</pubDate></item></channel></rss>