<?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 von Objekten zu neuem Objekt hinzufügen]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich kriege langsam graue Haare...<br />
Ich soll mit C++ ein Programm schreiben, dass Kursteilnehmer und einen Kurs erzeugt. Die Kursteilnehmer sollen dem Kurs per Array hinzugefügt werden.<br />
Ich habe eine Klasse Kursteilnehmer erzeugt, die auch wunderbar funktioniert.</p>
<p>Nur irgendwo habe ich noch einen riesigen Denkfehler, was die Kurs-Klasse angeht. Eigentlich wollte ich nun ein Array erzeugen, dass Kursteilnehmer enthält und dieses will ich an das Kurs-Objekt anfügen.</p>
<p>Aber ich kann mich vor Fehlermeldungen momentan kaum noch retten und weiß langsam nicht mehr weiter. Ich glaube, ich mache irgendwo noch etwas Prinzipielles falsch:</p>
<pre><code class="language-cpp">//Forward-Deklaration der Klasse TEILNEHMER
//class TEILNEHMER;
//Das klappt so aber nicht
#include &quot;TEILNEHMER.h&quot;

class KURS
{
      private:
              /*Variablen für Kursname, maximale Teilnehmerzahl,
               *Mindestteilnehmeranzahl, Teilnehmerobjekt, Teilnehmerarray,
               *Anzahl aktueller Teilnehmer im Kurs und Anzahl erzeugter Kurse
               */              
              std::string name;              
              short int maxPart;
              short int minPart;
              TEILNEHMER* tn;
              TEILNEHMER* teilnehmer[];              
              short int partCounter;
              static int courseCounter;      

      public:             
             KURS(std::string a);
             ~KURS();
             void setName(std::string name);
             static int getCount();
             std::string getName();
             void addParticipant(tn);
             void createParticipant();

};

  //Konstruktor fuer Kurse
  KURS::KURS(std::string a):name(a), maxPart(10), minPart(3), partCounter(0),
                         teilnehmer[10]
  {   
   courseCounter++;                                
  }

//...

  //Fragt beim Anwender die Teilnehmerdaten fuer den Teilnehmer ab, der
  //hinzugefuegt werden soll
  void KURS::createParticipant()
  {
       //Es wird nur ein neuer TN hinzugefuegt, wenn weniger als 10
       //TN im Kurs sind
       if(partCounter &lt; maxPart)
       {    
            std::string name;
            int ima;

            std::cout &lt;&lt; &quot;Bitte den vollstaendigen Namen des Teilnehmers &quot;
                      &quot;angeben: &quot;;
            std::cin &gt;&gt; name;
            std::cout &lt;&lt; std::endl &lt;&lt; std::endl;
            std::cout &lt;&lt; &quot;Bitte die Matrikelnummer des Teilnehmers angeben: &quot;;
            std::cin &gt;&gt; ima;    
            KURS::addParticipant(tn(name, ima));            

       }

  }

  //Fuegt einen Kursteilnehmer hinzu
  void KURS::addParticipant(tn)
  {       
          partCounter++;
          teilnehmer[partCounter - 1] = tn;
          std::cout &lt;&lt; &quot;Teilnehmer erfolgreich hinzugefuegt!&quot; &lt;&lt; std::endl;       
  }
</code></pre>
<p>Und das sind die Fehlermeldungen:</p>
<pre><code>26  variable or field `addParticipant' declared void 
26  expected `;' before '(' token 
  In constructor `KURS::KURS(std::string)': 
34  expected `(' before '[' token 
34  expected `{' before '[' token 
34  At global scope: 
34  expected unqualified-id before '[' token 
34  expected `,' or `;' before '[' token 
66  variable or field `addParticipant' declared void 
66  `int KURS::addParticipant' is not a static member of `class KURS' 
15  invalid use of non-static data member `KURS::tn' 
66  from this location 
67  expected `,' or `;' before '{' token 
  In member function `void KURS::createParticipant()': 
90  `addParticipant' is not a member of `KURS' 
90  `((KURS*)this)-&gt;KURS::tn' cannot be used as a function
</code></pre>
<p>Vielen Dank für eure Hilfe!</p>
<p>Liebe Grüße,<br />
Oli</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/304601/array-von-objekten-zu-neuem-objekt-hinzufügen</link><generator>RSS for Node</generator><lastBuildDate>Sun, 09 Aug 2026 10:04:05 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/304601.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 10 Jun 2012 11:28:05 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Array von Objekten zu neuem Objekt hinzufügen on Sun, 10 Jun 2012 11:28:05 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich kriege langsam graue Haare...<br />
Ich soll mit C++ ein Programm schreiben, dass Kursteilnehmer und einen Kurs erzeugt. Die Kursteilnehmer sollen dem Kurs per Array hinzugefügt werden.<br />
Ich habe eine Klasse Kursteilnehmer erzeugt, die auch wunderbar funktioniert.</p>
<p>Nur irgendwo habe ich noch einen riesigen Denkfehler, was die Kurs-Klasse angeht. Eigentlich wollte ich nun ein Array erzeugen, dass Kursteilnehmer enthält und dieses will ich an das Kurs-Objekt anfügen.</p>
<p>Aber ich kann mich vor Fehlermeldungen momentan kaum noch retten und weiß langsam nicht mehr weiter. Ich glaube, ich mache irgendwo noch etwas Prinzipielles falsch:</p>
<pre><code class="language-cpp">//Forward-Deklaration der Klasse TEILNEHMER
//class TEILNEHMER;
//Das klappt so aber nicht
#include &quot;TEILNEHMER.h&quot;

class KURS
{
      private:
              /*Variablen für Kursname, maximale Teilnehmerzahl,
               *Mindestteilnehmeranzahl, Teilnehmerobjekt, Teilnehmerarray,
               *Anzahl aktueller Teilnehmer im Kurs und Anzahl erzeugter Kurse
               */              
              std::string name;              
              short int maxPart;
              short int minPart;
              TEILNEHMER* tn;
              TEILNEHMER* teilnehmer[];              
              short int partCounter;
              static int courseCounter;      

      public:             
             KURS(std::string a);
             ~KURS();
             void setName(std::string name);
             static int getCount();
             std::string getName();
             void addParticipant(tn);
             void createParticipant();

};

  //Konstruktor fuer Kurse
  KURS::KURS(std::string a):name(a), maxPart(10), minPart(3), partCounter(0),
                         teilnehmer[10]
  {   
   courseCounter++;                                
  }

//...

  //Fragt beim Anwender die Teilnehmerdaten fuer den Teilnehmer ab, der
  //hinzugefuegt werden soll
  void KURS::createParticipant()
  {
       //Es wird nur ein neuer TN hinzugefuegt, wenn weniger als 10
       //TN im Kurs sind
       if(partCounter &lt; maxPart)
       {    
            std::string name;
            int ima;

            std::cout &lt;&lt; &quot;Bitte den vollstaendigen Namen des Teilnehmers &quot;
                      &quot;angeben: &quot;;
            std::cin &gt;&gt; name;
            std::cout &lt;&lt; std::endl &lt;&lt; std::endl;
            std::cout &lt;&lt; &quot;Bitte die Matrikelnummer des Teilnehmers angeben: &quot;;
            std::cin &gt;&gt; ima;    
            KURS::addParticipant(tn(name, ima));            

       }

  }

  //Fuegt einen Kursteilnehmer hinzu
  void KURS::addParticipant(tn)
  {       
          partCounter++;
          teilnehmer[partCounter - 1] = tn;
          std::cout &lt;&lt; &quot;Teilnehmer erfolgreich hinzugefuegt!&quot; &lt;&lt; std::endl;       
  }
</code></pre>
<p>Und das sind die Fehlermeldungen:</p>
<pre><code>26  variable or field `addParticipant' declared void 
26  expected `;' before '(' token 
  In constructor `KURS::KURS(std::string)': 
34  expected `(' before '[' token 
34  expected `{' before '[' token 
34  At global scope: 
34  expected unqualified-id before '[' token 
34  expected `,' or `;' before '[' token 
66  variable or field `addParticipant' declared void 
66  `int KURS::addParticipant' is not a static member of `class KURS' 
15  invalid use of non-static data member `KURS::tn' 
66  from this location 
67  expected `,' or `;' before '{' token 
  In member function `void KURS::createParticipant()': 
90  `addParticipant' is not a member of `KURS' 
90  `((KURS*)this)-&gt;KURS::tn' cannot be used as a function
</code></pre>
<p>Vielen Dank für eure Hilfe!</p>
<p>Liebe Grüße,<br />
Oli</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2221636</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2221636</guid><dc:creator><![CDATA[lerneLebenslang]]></dc:creator><pubDate>Sun, 10 Jun 2012 11:28:05 GMT</pubDate></item><item><title><![CDATA[Reply to Array von Objekten zu neuem Objekt hinzufügen on Sun, 10 Jun 2012 11:42:01 GMT]]></title><description><![CDATA[<p>Oh shit, ich merke gerade: Falsches Unterforum.<br />
Kann ein Mod den Beitrag bitte verschieben?<br />
Sorry!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2221642</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2221642</guid><dc:creator><![CDATA[lerneLebenslang]]></dc:creator><pubDate>Sun, 10 Jun 2012 11:42:01 GMT</pubDate></item><item><title><![CDATA[Reply to Array von Objekten zu neuem Objekt hinzufügen on Sun, 10 Jun 2012 13:02:52 GMT]]></title><description><![CDATA[<p>Du mußt noch den Datentyp für den Parameter 'pn' angeben:</p>
<pre><code class="language-cpp">void addParticipant(const TEILNEHMENR *tn);
</code></pre>
<p>Ich hoffe, du kennst schon die Klasse std::vector&lt;T&gt;, denn das würde einiges bei dir vereinfachen.<br />
Du wirst nämlich sehen, daß selbst mit obiger Änderung dein Code nicht funktioniert, weil du einerseits Zeiger verwendest, andererseits aber direkt ein Objekt der Methode übergibst.</p>
<p>P.S: Klassennamen sollten nicht ganz groß geschrieben werden, sondern (wenn überhaupt) nur der erste Buchstabe (Kurs, Teilnehmer, ...)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2221669</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2221669</guid><dc:creator><![CDATA[Th69]]></dc:creator><pubDate>Sun, 10 Jun 2012 13:02:52 GMT</pubDate></item><item><title><![CDATA[Reply to Array von Objekten zu neuem Objekt hinzufügen on Sun, 10 Jun 2012 15:43:16 GMT]]></title><description><![CDATA[<p>Th69 schrieb:</p>
<blockquote>
<p>Ich hoffe, du kennst schon die Klasse std::vector&lt;T&gt;, denn das würde einiges bei dir vereinfachen.</p>
</blockquote>
<p>Nein, leider noch nicht. Mit Java war das alles immer so einfach und hier ... *seufz*. Ich mach' mich mal schlau, was die Klasse angeht und melde mich nochmal, sollte ich weitere Fragen haben!</p>
<blockquote>
<p>P.S: Klassennamen sollten nicht ganz groß geschrieben werden, sondern (wenn überhaupt) nur der erste Buchstabe (Kurs, Teilnehmer, ...)</p>
</blockquote>
<p>Ist in unserem (nicht immer korrekten) Uni-Skript so gemacht. Ich gewöhn' es mir gleich mal wieder ab!</p>
<p>Edit: Was wäre denn richtiger? Sollte ich Objekte oder Zeiger an Methoden übergeben?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2221750</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2221750</guid><dc:creator><![CDATA[lerneLebenslang]]></dc:creator><pubDate>Sun, 10 Jun 2012 15:43:16 GMT</pubDate></item><item><title><![CDATA[Reply to Array von Objekten zu neuem Objekt hinzufügen on Sun, 10 Jun 2012 16:34:47 GMT]]></title><description><![CDATA[<p>Puh, also jetzt mal abgesehen von vector: Ich kriege es einfach noch nicht hin ein Objekt &quot;TEILNEHMER&quot; an eine Methode in &quot;KURS&quot; zu übergeben. Hier mal ein Code-Schnippsel:</p>
<pre><code class="language-cpp">//Forward-Deklaration der Klasse TEILNEHMER
//class TEILNEHMER;
#include &quot;TEILNEHMER.h&quot;

class KURS
{
      private:
              /*Variablen für Kursname, maximale Teilnehmerzahl,
               *Mindestteilnehmeranzahl, Teilnehmerobjekt, Teilnehmerarray,
               *Anzahl aktueller Teilnehmer im Kurs und Anzahl erzeugter Kurse
               */              
              std::string name;              
              short int maxPart;
              short int minPart;
              TEILNEHMER* participant;
              short int partCounter;
              static int courseCounter;      

      public:             
             KURS(std::string a);
             ~KURS();
             void setName(std::string name);
             static int getCount();
             std::string getName();
             void addParticipant(TEILNEHMER* participant);
             void createParticipant();

};

  //Konstruktor fuer Kurse, noch unvollständig
  KURS::KURS(std::string a):name(a), maxPart(10), minPart(3), partCounter(0)

  {   
   courseCounter++;                                
  }

  //...

  //Fuegt einen Kursteilnehmer hinzu
  void KURS::addParticipant(TEILNEHMER* participant)
  {       
          partCounter++;
          //teilnehmer[partCounter - 1] = participant;
          std::cout &lt;&lt; &quot;Teilnehmer erfolgreich hinzugefuegt!&quot; &lt;&lt; std::endl;       
  }

  //Fragt beim Anwender die Teilnehmerdaten fuer den Teilnehmer ab, der
  //hinzugefuegt werden soll
  void KURS::createParticipant()
  {
       //Es wird nur ein neuer TN hinzugefuegt, wenn weniger als 10
       //TN im Kurs sind
       if(partCounter &lt; maxPart)
       {    
            std::string name;
            int ima;

            std::cout &lt;&lt; &quot;Bitte den vollstaendigen Namen des Teilnehmers &quot;
                      &quot;angeben: &quot;;
            std::cin &gt;&gt; name;
            std::cout &lt;&lt; std::endl &lt;&lt; std::endl;
            std::cout &lt;&lt; &quot;Bitte die Matrikelnummer des Teilnehmers angeben: &quot;;
            std::cin &gt;&gt; ima;
            TEILNEHMER participant(name, ima);    
            KURS::addParticipant(participant*);            

       } else {              
              std::cout &lt;&lt; &quot;Teilnehmer konnte nicht hinzugefuegt werden!&quot; &lt;&lt;
                        std::endl;              
              std::cout &lt;&lt; &quot;Der Kurs ist voll belegt. Bitte versuchen sie es zu&quot; 
                   &quot;einem anderen Zeitpunkt noch einmal!&quot; &lt;&lt; std::endl;
       }

  }
</code></pre>
<p>Die Fehlermeldungen sind nun übersichtlicher:</p>
<pre><code>In member function `void KURS::createParticipant()': 

90 expected primary-expression before ')' token
</code></pre>
<p>Wo ist der Fehler?</p>
<p>Desweiteren: Wenn ich die kritische Stelle auskommentiere, dann kompiliert er. ABER: In der Zeile, wo ein neuer Kursteilnehmer erzeugt werden soll, ruft das Programm den Destruktor von TEILNEHMER und nicht den Konstruktor auf. Es wird einfach kein Teilnehmer erzeugt. Boah, ich raste gleich aus... <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f621.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--pouting_face"
      title=":rage:"
      alt="😡"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2221778</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2221778</guid><dc:creator><![CDATA[lerneLebenslang]]></dc:creator><pubDate>Sun, 10 Jun 2012 16:34:47 GMT</pubDate></item><item><title><![CDATA[Reply to Array von Objekten zu neuem Objekt hinzufügen on Mon, 11 Jun 2012 05:52:15 GMT]]></title><description><![CDATA[<p>Dieser Thread wurde von Moderator/in <a href="http://www.c-plusplus.net/forum/u18363" rel="nofollow">Jochen Kalmbach</a> aus dem Forum <a href="http://www.c-plusplus.net/forum/f58" rel="nofollow">C++/CLI mit .NET</a> in das Forum <a href="http://www.c-plusplus.net/forum/f15" rel="nofollow">C++ (auch C++0x und C++11)</a> verschoben.</p>
<p>Im Zweifelsfall bitte auch folgende Hinweise beachten:<br />
<a href="http://www.c-plusplus.net/forum/39405" rel="nofollow">C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?</a></p>
<p><em>Dieses Posting wurde automatisch erzeugt.</em></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2221896</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2221896</guid><dc:creator><![CDATA[C++ Forumbot]]></dc:creator><pubDate>Mon, 11 Jun 2012 05:52:15 GMT</pubDate></item><item><title><![CDATA[Reply to Array von Objekten zu neuem Objekt hinzufügen on Mon, 11 Jun 2012 08:13:58 GMT]]></title><description><![CDATA[<p>lerneLebenslang schrieb:</p>
<blockquote>
<p>Wo ist der Fehler?</p>
</blockquote>
<p>da:</p>
<pre><code class="language-cpp">KURS::addParticipant(participant*);
</code></pre>
<p>du willst:</p>
<pre><code class="language-cpp">addParticipant(&amp;participant);
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2221921</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2221921</guid><dc:creator><![CDATA[Swordfish]]></dc:creator><pubDate>Mon, 11 Jun 2012 08:13:58 GMT</pubDate></item><item><title><![CDATA[Reply to Array von Objekten zu neuem Objekt hinzufügen on Mon, 11 Jun 2012 15:11:23 GMT]]></title><description><![CDATA[<p>Und davon abgesehen ist es fragwürdig einen Zeiger auf ein Objekt zu übergeben das gleich wieder verschwinden wird.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2222093</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2222093</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Mon, 11 Jun 2012 15:11:23 GMT</pubDate></item></channel></rss>