<?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[n Instanzen eins Objektes erzeugen]]></title><description><![CDATA[<p>Hallo.</p>
<p>Ich habe nun wieder mal etwas Zeit gefunden um c++ zu lernen.</p>
<p>Ich möchte Personen und deren E-Mail Adressen verwalten.<br />
Jetzt erzeuge ich laut Lehrbuch mit z.B. person1 eine Instanz von datensatz.<br />
Meinetwegen auch eine person2, person3, ....</p>
<pre><code>int main(){
        datensatz person1;
        person1.daten_eingabe(&quot;Max&quot;,&quot;Mustermann&quot;,&quot;max@muster.com&quot;);
        person1.ausgabe_name();
        return 0;
}
</code></pre>
<p>Ich weiß nicht ob ich komplett auf der Leitung stehe, aber wie kann ich<br />
jetzt n Instanzen erzeugen. Solange es heißt weiteren Datensatz eingeben,<br />
soll eine weitere Instanz personXY erzeugt werden.</p>
<p>danke.<br />
michi</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/140999/n-instanzen-eins-objektes-erzeugen</link><generator>RSS for Node</generator><lastBuildDate>Mon, 31 Aug 2026 08:56:02 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/140999.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 18 Mar 2006 15:22:00 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to n Instanzen eins Objektes erzeugen on Sat, 18 Mar 2006 16:13:24 GMT]]></title><description><![CDATA[<p>Hallo.</p>
<p>Ich habe nun wieder mal etwas Zeit gefunden um c++ zu lernen.</p>
<p>Ich möchte Personen und deren E-Mail Adressen verwalten.<br />
Jetzt erzeuge ich laut Lehrbuch mit z.B. person1 eine Instanz von datensatz.<br />
Meinetwegen auch eine person2, person3, ....</p>
<pre><code>int main(){
        datensatz person1;
        person1.daten_eingabe(&quot;Max&quot;,&quot;Mustermann&quot;,&quot;max@muster.com&quot;);
        person1.ausgabe_name();
        return 0;
}
</code></pre>
<p>Ich weiß nicht ob ich komplett auf der Leitung stehe, aber wie kann ich<br />
jetzt n Instanzen erzeugen. Solange es heißt weiteren Datensatz eingeben,<br />
soll eine weitere Instanz personXY erzeugt werden.</p>
<p>danke.<br />
michi</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1019103</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1019103</guid><dc:creator><![CDATA[major]]></dc:creator><pubDate>Sat, 18 Mar 2006 16:13:24 GMT</pubDate></item><item><title><![CDATA[Reply to n Instanzen eins Objektes erzeugen on Sat, 18 Mar 2006 15:40:16 GMT]]></title><description><![CDATA[<p>indem du die objekte in einem container speicherst. entweder ein array mit fester größe oder einem typ variable größe.</p>
<p>letzeres dann z.b. so:</p>
<pre><code class="language-cpp">#include &lt;vector&gt;
...
int main()
{
 vector&lt;datensatz&gt; daten; // dynamischer container für typ datensatz
 while(true)
 {
  datensatz person;
  getEingabe(person); // irgendwie person mit daten füllen
  daten.push_back(person); // datensatz in liste einfügen
 }
}
</code></pre>
<p>in jedem schleifendurchlauf wird ein neuer datensatz an den container &quot;daten&quot; angefügt. auf deine daten zugreifen kannst du dann über den [] operator</p>
<pre><code class="language-cpp">daten[12]; // liefert datensatz nr. 13 zurück
</code></pre>
<p>die größe des containers, also die anzahl der datensätze, kannst du über daten.size() bekommen</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1019120</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1019120</guid><dc:creator><![CDATA[instanz]]></dc:creator><pubDate>Sat, 18 Mar 2006 15:40:16 GMT</pubDate></item><item><title><![CDATA[Reply to n Instanzen eins Objektes erzeugen on Sun, 19 Mar 2006 10:48:39 GMT]]></title><description><![CDATA[<p>hallo.<br />
danke für die antwort.<br />
ich habe jetzt versucht das in einem Vektor zu speichern. Weiters hab ich das Programm noch ein bisschen umgebaut.<br />
Leider hab ich probleme auf den vektor zuzugreifen bzw. alle daten der vektoren auszugeben sobald man keine weiteren daten mehr eingibt.</p>
<p>Kann mir jemand sagen wie die funktion daten_ausgabe ausschauen muss.</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;string&gt;
#include &lt;vector&gt;
using namespace std;

class datensatz
{
	private:
		string vorname;
		string nachname;
		string email;
	public:
		void daten_eingabe()
		{
			vector&lt;datensatz&gt; daten;
			while(true) {
				cout &lt;&lt; &quot;Daten eingeben:(Vorname Nachname Email)&quot;;
				cin &gt;&gt; vorname &gt;&gt; nachname &gt;&gt; email;
				datensatz person;
				daten.push_back(person);
				cout &lt;&lt; &quot;Weitere Daten (J/n)&quot;;
				char weiter;
				cin &gt;&gt; weiter;
				if (weiter=='n'){
					break;
				}
			}

		}

		void daten_ausgabe (){
			for (int i=0; i&lt;10; i++)
			{
				// ?????????????			
			}
		}
};

int main(){
	datensatz a;
	a.daten_eingabe();
	a.daten_ausgabe();
	return 0;
}
</code></pre>
<p>danke</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1019526</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1019526</guid><dc:creator><![CDATA[major]]></dc:creator><pubDate>Sun, 19 Mar 2006 10:48:39 GMT</pubDate></item><item><title><![CDATA[Reply to n Instanzen eins Objektes erzeugen on Sun, 19 Mar 2006 11:45:28 GMT]]></title><description><![CDATA[<p>major schrieb:</p>
<blockquote>
<p>Kann mir jemand sagen wie die funktion daten_ausgabe ausschauen muss.</p>
</blockquote>
<p>Dein Design ist imho sehr strange. Stellen wir dieses doch zuerst einmal um.<br />
Zuerst einmal hast du einen Datensatz.</p>
<pre><code class="language-cpp">class data
{
    string surename, name, email;

    public:
        void daten_eingabe()
        {
                cout &lt;&lt; &quot;Daten eingeben:(Vorname Nachname Email)&quot;;
                cin &gt;&gt; surename &gt;&gt; name &gt;&gt; email;
        }

        void daten_ausgabe()
        {
                cout &lt;&lt; &quot;surename: &quot; &lt;&lt; surename;
                cout &lt;&lt; &quot;\nname:     &quot; &lt;&lt; name;
                cout &lt;&lt; &quot;\nemail:    &quot; &lt;&lt; email &lt;&lt; endl;
        }
};
</code></pre>
<p>Von diesem Datensatz erstellst du jetzt einen Vektor.</p>
<pre><code class="language-cpp">vector&lt;data&gt; data_vec;
</code></pre>
<p>Wenn du jetzt für den Datensatz nummer x etwas einlesen möchtest, schreibst du:</p>
<pre><code class="language-cpp">data_vec[x].daten_eingabe(); // an position x muss natürlich Speicher reserviert sein!
</code></pre>
<p>Das einlesen des Vektors über den Benutzer realisierst du am besten über eine Funktion.</p>
<pre><code class="language-cpp">void read_into(vector&lt;data&gt;&amp; v)
{
    do
    {
        data tmp;
        tmp.daten_eingabe();
        v.push_back(tmp);

        cout &lt;&lt; &quot;another data? (y==YES): &quot;;
        char c;
        cin &gt;&gt; c; 
    } while(c == 'y');
}
</code></pre>
<p>So... Das fürs erste. Aber: viel schöner als die Methoden daten_eingabe/daten_ausgabe sind überladene I/O-Operatoren.<br />
Also... schnell die Klasse data umbauen:</p>
<pre><code class="language-cpp">class data
{
    string surename, name, email;

    public:
        friend istream&amp; operator&gt;&gt;(istream&amp; is, data&amp; rhs)
        {
                is &gt;&gt; rhs.surename &gt;&gt; rhs.name &gt;&gt; rhs.email;
                return is;
        }

        friend ostream&amp; operator&lt;&lt;(ostream&amp; os, const data&amp; rhs)
        {
                os &lt;&lt; &quot;surename: &quot; &lt;&lt; rhs.surename;
                os &lt;&lt; &quot;\nname:     &quot; &lt;&lt; rhs.name;
                os &lt;&lt; &quot;\nemail:    &quot; &lt;&lt; rhs.email &lt;&lt; endl;
                return os;
        }
};
</code></pre>
<p>Jetzt noch schnell die Funktion readin() ändern in</p>
<pre><code class="language-cpp">void read_into(vector&lt;data&gt;&amp; v)
{
    do
    {
        cout &lt;&lt; &quot;please insert the data:\n&quot;;
        data tmp;
        cin &gt;&gt; tmp;
        v.push_back(tmp);

        cout &lt;&lt; &quot;another data? (y==YES): &quot;;
        char c;
        cin &gt;&gt; c; 
    } while(c == 'y');
}
</code></pre>
<p>Jetzt kannst du natürlich noch die Funktion read_into() als Template gestalten, so dass sie letztlich von einem beliebigen Container, der die Methode push_back() besitzt, solange beliebige Daten, die die I/O-Operatoren überladen haben, einließt wie dies der Benutzer zulässt... aber dies überlasse ich dir als Homework. ;).</p>
<p>Gruß Caipi</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1019550</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1019550</guid><dc:creator><![CDATA[Caipi]]></dc:creator><pubDate>Sun, 19 Mar 2006 11:45:28 GMT</pubDate></item></channel></rss>