<?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 an Funktionen übergeben]]></title><description><![CDATA[<p>Hallo allerseits,</p>
<p>für eine Einsendeaufgabe soll ich ein einfaches Programm für eine Hotelzimmervewaltung schreiben. Das Programm soll objektorientiert sein, dafür habe ich eine Oberklasse &quot;Zimmer&quot; und zwei Unterklassen &quot;EinzelZimmer&quot; &amp; &quot;DoppelZimmer&quot;. Es gibt 10 Einzel- und 10 Doppelzimmer, also erstelle ich für beide Typen je ein Feld - und zwar so:</p>
<pre><code class="language-cpp">/* Felder der Einzel- &amp; Doppelzimmer erzeugen
	--------------------------------------------- */
		/* Einzelzimmer */
		EinzelZimmer EinzelZimmerArray[10];
		for (intZaehler = 0; intZaehler &lt; 10; intZaehler++)
		{
			EinzelZimmerArray[intZaehler].ZimmernummerErzeugen(intZaehler);
		}

		/* Doppelzimmer */
		DoppelZimmer DoppelZimmerArray[10];
		for (intZaehler = 0; intZaehler &lt; 10; intZaehler++)
		{
			DoppelZimmerArray[intZaehler].ZimmernummerErzeugen(intZaehler);
		}
</code></pre>
<p>Eine Funktion des Programms soll sein dass der Benutzer die Zimmer mit allen Daten anzeigen lassen kann - die freien, die belegten, oder alle.<br />
Nun habe ich über ein Menü die Auswahl bereit gestellt und wenn der User sich entscheidet die Zimmer abzufragen, schicke ich ihn in ein weiteres Menü - und zwar so:</p>
<pre><code class="language-cpp">switch (charMenuepunkt[0])
			{
				case '1': MenueZimmerstati(EinzelZimmerArray[10], DoppelZimmerArray[10]);
							system(&quot;Pause&quot;);
							break;
</code></pre>
<p>Der Prototyp der Funktion sieht so aus:</p>
<pre><code class="language-cpp">void MenueZimmerstati(EinzelZimmer, DoppelZimmer);
</code></pre>
<p>Ist er im neuen Menü, kann er sich entscheiden ob eben die freien, die belegten oder alle angezeigt werden sollen.<br />
Momentan habe ich testhalber nur die ersten beiden geschrieben - und das sieht so aus:</p>
<p>- Untermenü:</p>
<pre><code class="language-cpp">void MenueZimmerstati(EinzelZimmer EinzelZimmerArray[10], DoppelZimmer DoppelZimmerArray[10])
{
...
switch (charMenuepunkt[0])
			{
				case '1': strSuchKriterium = &quot;frei&quot;;
							StatiFreieBelegteZimmer(strSuchKriterium, EinzelZimmerArray[10], DoppelZimmerArray[10]);
							system(&quot;Pause&quot;);
							break;
</code></pre>
<p>- anzeigen der gefragten Zimmer:</p>
<pre><code class="language-cpp">void StatiFreieBelegteZimmer(string strSuchKriterium, EinzelZimmer EinzelZimmerArray[10], DoppelZimmer DoppelZimmerArray[10])
{
	/* Hilfsvariablen */
	int intZaehler; /* zum Durchlaufen der Zimmer-Felder */

	/* Durchlauf des EinzelZimmer-Feldes und Ausgabe der gefragten Daten */
	for (intZaehler = 0; intZaehler &lt; 10; intZaehler++)
	{
		/* Stati des aktuellen Elementes prüfen... */
		if (EinzelZimmerArray[intZaehler].RueckgabeStatus() == strSuchKriterium)
		{
			/* ...und Ausgabe veranlassen, falss das aktuelle Zimmer den gefragten Wert enthällt */
			EinzelZimmerArray[intZaehler].EinzelZimmerDatenAusgeben();

			/* Übersichtszeile */
			cout &lt;&lt; &quot;-----------------------------------------------\n&quot;;
		}
	}

	/* Durchlauf des DoppelZimmer-Feldes und Ausgabe der gefragten Daten */
	for (intZaehler = 0; intZaehler &lt; 10; intZaehler++)
	{
		/* Stati des aktuellen Elementes prüfen... */
		if (DoppelZimmerArray[intZaehler].RueckgabeStatus() == strSuchKriterium)
		{
			/* ...und Ausgabe veranlassen, falss das aktuelle Zimmer den gefragten Wert enthällt */
			DoppelZimmerArray[intZaehler].DoppelZimmerDatenAusgeben();

			/* Übersichtszeile */
			cout &lt;&lt; &quot;-----------------------------------------------\n&quot;;
		}
	}
}
</code></pre>
<p>Der Prototyp der Funktion &quot;StatiFreieBelegteZimmer&quot; ist dieser:</p>
<pre><code class="language-cpp">void StatiFreieBelegteZimmer(string, EinzelZimmer, DoppelZimmer);
</code></pre>
<p>Folgendes Problem tritt nun auf:<br />
- wenn ich die Funktionen OHNE die Übergabe der Arrays laufen lasse (dann natürlich nur zum Test und ohne die Funktionalitäten) geht es<br />
- rufe ich die Funktionen MIT der Übergabe aufrufe, also wie ihr sie hier seht, bekomme ich diesen Fehler:</p>
<p>1&gt;------ Erstellen gestartet: Projekt: Aufbabe_2, Konfiguration: Debug Win32 ------</p>
<p>1&gt;EA2_main.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol<br />
&quot;&quot;void __cdecl MenueZimmerstati(class EinzelZimmer,class DoppelZimmer)&quot; (?MenueZimmerstati@@YAXVEinzelZimmer@@VDoppelZimmer@@@Z)&quot; in Funktion &quot;_main&quot;.</p>
<p>1&gt;MenueZimmerstati.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol<br />
&quot;&quot;void __cdecl StatiFreieBelegteZimmer(class std::basic_string&lt;char,struct std::char_traits&lt;char&gt;,class std::allocator&lt;char&gt; &gt;,class EinzelZimmer,class DoppelZimmer)&quot;<br />
(?StatiFreieBelegteZimmer@@YAXV?<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>b</mi><mi>a</mi><mi>s</mi><mi>i</mi><mi>c</mi><mi mathvariant="normal">_</mi><mi>s</mi><mi>t</mi><mi>r</mi><mi>i</mi><mi>n</mi><mi>g</mi><mi mathvariant="normal">@</mi><mi>D</mi><mi>U</mi><mo>?</mo></mrow><annotation encoding="application/x-tex">basic\_string@DU?</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="strut" style="height:0.69444em;"></span><span class="strut bottom" style="height:1.00444em;vertical-align:-0.31em;"></span><span class="base textstyle uncramped"><span class="mord mathit">b</span><span class="mord mathit">a</span><span class="mord mathit">s</span><span class="mord mathit">i</span><span class="mord mathit">c</span><span class="mord mathrm" style="margin-right:0.02778em;">_</span><span class="mord mathit">s</span><span class="mord mathit">t</span><span class="mord mathit" style="margin-right:0.02778em;">r</span><span class="mord mathit">i</span><span class="mord mathit">n</span><span class="mord mathit" style="margin-right:0.03588em;">g</span><span class="mord mathrm">@</span><span class="mord mathit" style="margin-right:0.02778em;">D</span><span class="mord mathit" style="margin-right:0.10903em;">U</span><span class="mclose">?</span></span></span></span>char_traits@D@std@@V?$allocator@D@2@@std@@VEinzelZimmer@@VDoppelZimmer@@@Z)&quot; in Funktion<br />
&quot;&quot;void __cdecl MenueZimmerstati(class EinzelZimmer * const,class DoppelZimmer * const)&quot; (?MenueZimmerstati@@YAXQAVEinzelZimmer@@QAVDoppelZimmer@@@Z)&quot;.</p>
<p>1&gt;C:\Users\sinnlos\Documents\My Dropbox\Studium\C++\Programme_Kurs\Programme_VisualStudio\_Einsendeaufgaben\Aufbabe_2\Debug\Aufbabe_2.exe :<br />
fatal error LNK1120: 2 nicht aufgelöste externe Verweise.</p>
<p>========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========</p>
<p>Wie ihr vielleicht merkt bin ich noch neu bei C++. Im Internet habe ich schon einige ähnliche Bsp gelesen, mit Zeigern, Vektoren usw., das hatten wir im Kurs aber noch nicht und leider tu ich mich schwer die ähnlichen Bsp. auf meins umzulegen.</p>
<p>Könnt ihr mir vielleicht sagen was ich beim Übergeben der Felder falsch mache..?? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
<p>Danke schon mal im Voraus..!! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/topic/297818/array-von-objekten-an-funktionen-übergeben</link><generator>RSS for Node</generator><lastBuildDate>Fri, 14 Aug 2026 04:58:47 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/297818.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 07 Jan 2012 18:20:22 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Array von Objekten an Funktionen übergeben on Sat, 07 Jan 2012 18:20:22 GMT]]></title><description><![CDATA[<p>Hallo allerseits,</p>
<p>für eine Einsendeaufgabe soll ich ein einfaches Programm für eine Hotelzimmervewaltung schreiben. Das Programm soll objektorientiert sein, dafür habe ich eine Oberklasse &quot;Zimmer&quot; und zwei Unterklassen &quot;EinzelZimmer&quot; &amp; &quot;DoppelZimmer&quot;. Es gibt 10 Einzel- und 10 Doppelzimmer, also erstelle ich für beide Typen je ein Feld - und zwar so:</p>
<pre><code class="language-cpp">/* Felder der Einzel- &amp; Doppelzimmer erzeugen
	--------------------------------------------- */
		/* Einzelzimmer */
		EinzelZimmer EinzelZimmerArray[10];
		for (intZaehler = 0; intZaehler &lt; 10; intZaehler++)
		{
			EinzelZimmerArray[intZaehler].ZimmernummerErzeugen(intZaehler);
		}

		/* Doppelzimmer */
		DoppelZimmer DoppelZimmerArray[10];
		for (intZaehler = 0; intZaehler &lt; 10; intZaehler++)
		{
			DoppelZimmerArray[intZaehler].ZimmernummerErzeugen(intZaehler);
		}
</code></pre>
<p>Eine Funktion des Programms soll sein dass der Benutzer die Zimmer mit allen Daten anzeigen lassen kann - die freien, die belegten, oder alle.<br />
Nun habe ich über ein Menü die Auswahl bereit gestellt und wenn der User sich entscheidet die Zimmer abzufragen, schicke ich ihn in ein weiteres Menü - und zwar so:</p>
<pre><code class="language-cpp">switch (charMenuepunkt[0])
			{
				case '1': MenueZimmerstati(EinzelZimmerArray[10], DoppelZimmerArray[10]);
							system(&quot;Pause&quot;);
							break;
</code></pre>
<p>Der Prototyp der Funktion sieht so aus:</p>
<pre><code class="language-cpp">void MenueZimmerstati(EinzelZimmer, DoppelZimmer);
</code></pre>
<p>Ist er im neuen Menü, kann er sich entscheiden ob eben die freien, die belegten oder alle angezeigt werden sollen.<br />
Momentan habe ich testhalber nur die ersten beiden geschrieben - und das sieht so aus:</p>
<p>- Untermenü:</p>
<pre><code class="language-cpp">void MenueZimmerstati(EinzelZimmer EinzelZimmerArray[10], DoppelZimmer DoppelZimmerArray[10])
{
...
switch (charMenuepunkt[0])
			{
				case '1': strSuchKriterium = &quot;frei&quot;;
							StatiFreieBelegteZimmer(strSuchKriterium, EinzelZimmerArray[10], DoppelZimmerArray[10]);
							system(&quot;Pause&quot;);
							break;
</code></pre>
<p>- anzeigen der gefragten Zimmer:</p>
<pre><code class="language-cpp">void StatiFreieBelegteZimmer(string strSuchKriterium, EinzelZimmer EinzelZimmerArray[10], DoppelZimmer DoppelZimmerArray[10])
{
	/* Hilfsvariablen */
	int intZaehler; /* zum Durchlaufen der Zimmer-Felder */

	/* Durchlauf des EinzelZimmer-Feldes und Ausgabe der gefragten Daten */
	for (intZaehler = 0; intZaehler &lt; 10; intZaehler++)
	{
		/* Stati des aktuellen Elementes prüfen... */
		if (EinzelZimmerArray[intZaehler].RueckgabeStatus() == strSuchKriterium)
		{
			/* ...und Ausgabe veranlassen, falss das aktuelle Zimmer den gefragten Wert enthällt */
			EinzelZimmerArray[intZaehler].EinzelZimmerDatenAusgeben();

			/* Übersichtszeile */
			cout &lt;&lt; &quot;-----------------------------------------------\n&quot;;
		}
	}

	/* Durchlauf des DoppelZimmer-Feldes und Ausgabe der gefragten Daten */
	for (intZaehler = 0; intZaehler &lt; 10; intZaehler++)
	{
		/* Stati des aktuellen Elementes prüfen... */
		if (DoppelZimmerArray[intZaehler].RueckgabeStatus() == strSuchKriterium)
		{
			/* ...und Ausgabe veranlassen, falss das aktuelle Zimmer den gefragten Wert enthällt */
			DoppelZimmerArray[intZaehler].DoppelZimmerDatenAusgeben();

			/* Übersichtszeile */
			cout &lt;&lt; &quot;-----------------------------------------------\n&quot;;
		}
	}
}
</code></pre>
<p>Der Prototyp der Funktion &quot;StatiFreieBelegteZimmer&quot; ist dieser:</p>
<pre><code class="language-cpp">void StatiFreieBelegteZimmer(string, EinzelZimmer, DoppelZimmer);
</code></pre>
<p>Folgendes Problem tritt nun auf:<br />
- wenn ich die Funktionen OHNE die Übergabe der Arrays laufen lasse (dann natürlich nur zum Test und ohne die Funktionalitäten) geht es<br />
- rufe ich die Funktionen MIT der Übergabe aufrufe, also wie ihr sie hier seht, bekomme ich diesen Fehler:</p>
<p>1&gt;------ Erstellen gestartet: Projekt: Aufbabe_2, Konfiguration: Debug Win32 ------</p>
<p>1&gt;EA2_main.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol<br />
&quot;&quot;void __cdecl MenueZimmerstati(class EinzelZimmer,class DoppelZimmer)&quot; (?MenueZimmerstati@@YAXVEinzelZimmer@@VDoppelZimmer@@@Z)&quot; in Funktion &quot;_main&quot;.</p>
<p>1&gt;MenueZimmerstati.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol<br />
&quot;&quot;void __cdecl StatiFreieBelegteZimmer(class std::basic_string&lt;char,struct std::char_traits&lt;char&gt;,class std::allocator&lt;char&gt; &gt;,class EinzelZimmer,class DoppelZimmer)&quot;<br />
(?StatiFreieBelegteZimmer@@YAXV?<span class="katex"><span class="katex-mathml"><math><semantics><mrow><mi>b</mi><mi>a</mi><mi>s</mi><mi>i</mi><mi>c</mi><mi mathvariant="normal">_</mi><mi>s</mi><mi>t</mi><mi>r</mi><mi>i</mi><mi>n</mi><mi>g</mi><mi mathvariant="normal">@</mi><mi>D</mi><mi>U</mi><mo>?</mo></mrow><annotation encoding="application/x-tex">basic\_string@DU?</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="strut" style="height:0.69444em;"></span><span class="strut bottom" style="height:1.00444em;vertical-align:-0.31em;"></span><span class="base textstyle uncramped"><span class="mord mathit">b</span><span class="mord mathit">a</span><span class="mord mathit">s</span><span class="mord mathit">i</span><span class="mord mathit">c</span><span class="mord mathrm" style="margin-right:0.02778em;">_</span><span class="mord mathit">s</span><span class="mord mathit">t</span><span class="mord mathit" style="margin-right:0.02778em;">r</span><span class="mord mathit">i</span><span class="mord mathit">n</span><span class="mord mathit" style="margin-right:0.03588em;">g</span><span class="mord mathrm">@</span><span class="mord mathit" style="margin-right:0.02778em;">D</span><span class="mord mathit" style="margin-right:0.10903em;">U</span><span class="mclose">?</span></span></span></span>char_traits@D@std@@V?$allocator@D@2@@std@@VEinzelZimmer@@VDoppelZimmer@@@Z)&quot; in Funktion<br />
&quot;&quot;void __cdecl MenueZimmerstati(class EinzelZimmer * const,class DoppelZimmer * const)&quot; (?MenueZimmerstati@@YAXQAVEinzelZimmer@@QAVDoppelZimmer@@@Z)&quot;.</p>
<p>1&gt;C:\Users\sinnlos\Documents\My Dropbox\Studium\C++\Programme_Kurs\Programme_VisualStudio\_Einsendeaufgaben\Aufbabe_2\Debug\Aufbabe_2.exe :<br />
fatal error LNK1120: 2 nicht aufgelöste externe Verweise.</p>
<p>========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========</p>
<p>Wie ihr vielleicht merkt bin ich noch neu bei C++. Im Internet habe ich schon einige ähnliche Bsp gelesen, mit Zeigern, Vektoren usw., das hatten wir im Kurs aber noch nicht und leider tu ich mich schwer die ähnlichen Bsp. auf meins umzulegen.</p>
<p>Könnt ihr mir vielleicht sagen was ich beim Übergeben der Felder falsch mache..?? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
<p>Danke schon mal im Voraus..!! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2164960</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2164960</guid><dc:creator><![CDATA[Eisenspitze]]></dc:creator><pubDate>Sat, 07 Jan 2012 18:20:22 GMT</pubDate></item><item><title><![CDATA[Reply to Array von Objekten an Funktionen übergeben on Sat, 07 Jan 2012 18:45:31 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>bei der Übergabe eines Arrays darfst du nicht die Größe mitangeben (da es sonst ein Zugriff auf das x. Element bedeutet), also</p>
<pre><code class="language-cpp">MenueZimmerstati(EinzelZimmerArray, DoppelZimmerArray);
// sowie
StatiFreieBelegteZimmer(strSuchKriterium, EinzelZimmerArray, DoppelZimmerArray);
</code></pre>
<p>Im Sinne von OOP wäre es aber besser du hättest nur eine Liste von Zimmern (z.B. std::vector&lt;Zimmer*&gt; ) und die Funktionen würden nur mit den virtuellen Funktionen von Zimmer arbeiten.<br />
Haben denn die Klassen Einzel- und Doppelzimmer unterschiedliche Member, weil sonst würde ja auch einfach ein Member &quot;AnzahlBetten&quot; in der Basisklasse &quot;Zimmer&quot; reichen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2164964</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2164964</guid><dc:creator><![CDATA[Th69]]></dc:creator><pubDate>Sat, 07 Jan 2012 18:45:31 GMT</pubDate></item><item><title><![CDATA[Reply to Array von Objekten an Funktionen übergeben on Sat, 07 Jan 2012 18:47:22 GMT]]></title><description><![CDATA[<p>Ich sag nur Typ != Typ[].<br />
Wenn du im Prototyp nur Einzelzimmer schreibst, in der Implementierung aber Einzelzimmer[], dann sind das zwei verschiedene Funktionen. Der Linker sucht dann nach einer Funktion die zur entsprechenden Signatur passt. Da Foo(Typ) etwas anderes als Foo(Typ[]) ist findet er nichts und beschwert sich.<br />
Die Lösung ist also: Auch im Prototyp die eckigen Klammern an den Typnamen hängen.<br />
Nebenbei: Die Grenzenangabe bei Parametern beachtet der Compiler gar nicht, intern wird nur ein Zeiger übergeben (call by refrence).<br />
Und beim Aufruf einer Funktion die ein Array als Parameter haben möchte schreibt man Foo(ArrayName) und nicht Foo(ArrayName[ArrayGröße].</p>
<p>EDIT: Zu langsam <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/2164965</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2164965</guid><dc:creator><![CDATA[Jonas OSDever]]></dc:creator><pubDate>Sat, 07 Jan 2012 18:47:22 GMT</pubDate></item><item><title><![CDATA[Reply to Array von Objekten an Funktionen übergeben on Sat, 07 Jan 2012 18:50:40 GMT]]></title><description><![CDATA[<p>Noch einer. Guck dir mal die anderen Threads hier im Forum an, scheint so als sei euer Kurs mit seiner Hausaufgabe ziemlich überfordert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2164969</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2164969</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Sat, 07 Jan 2012 18:50:40 GMT</pubDate></item><item><title><![CDATA[Reply to Array von Objekten an Funktionen übergeben on Sat, 07 Jan 2012 19:53:33 GMT]]></title><description><![CDATA[<p>Danke für die schnellen Antworten..!! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
<p>@ Th69<br />
Einfach die Größenangabe weglassen geht nicht, da bekomme ich schon bei schreiben einen Hinweis dass das ungültig ist (Visual C++) und kompilieren ist dann natürlich auch nicht drin...<br />
Hast du vielleicht einen Tip wo das mit der Liste und den Vektoren gut erklärt ist..? ..vielleicht mit Codebsp...?<br />
Fällt das auch unter die Kategorie Zeiger..?</p>
<p>@ Jonas OSDever<br />
Hab ich was falsches geschrieben, oder hast du da was falsch interpretiert..? EinzelZimmer ist ja die Klasse, also der Datentyp vom Feld EinzelZimmerArray, da kommen doch auf keinen Fall die [] hin...?? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
<p>@ SeppJ<br />
Du müsstest mal die Schulungsunterlagen sehen..da waren teilweise auch die Codebeispiele falsch und haben nicht funktioniert..und das Buch das uns empfohlen wurde enthält NICHTS (!!) über Klassen... <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /> ..also bitte entschuldige mir/uns dass wir Schwierigkeiten haben... <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/2164983</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2164983</guid><dc:creator><![CDATA[Eisenspitze]]></dc:creator><pubDate>Sat, 07 Jan 2012 19:53:33 GMT</pubDate></item><item><title><![CDATA[Reply to Array von Objekten an Funktionen übergeben on Sat, 07 Jan 2012 20:02:55 GMT]]></title><description><![CDATA[<p>PS:<br />
Die Zimmer unterscheiden sich nur durch die Zimmernummern E01-E10 &amp; D01-D10 und ihren Preis.<br />
Die Unterklassen habe ich gemacht um das mit der Vererbung und dem verwenden der Methoden zu üben... <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/2164989</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2164989</guid><dc:creator><![CDATA[Eisenspitze]]></dc:creator><pubDate>Sat, 07 Jan 2012 20:02:55 GMT</pubDate></item><item><title><![CDATA[Reply to Array von Objekten an Funktionen übergeben on Sat, 07 Jan 2012 21:51:02 GMT]]></title><description><![CDATA[<p>@ Jonas OSDever<br />
Hab jetzt deinen Tip probiert und so geht´s..!!<br />
<img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /> VIELEN DANK..!! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2165046</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2165046</guid><dc:creator><![CDATA[Eisenspitze]]></dc:creator><pubDate>Sat, 07 Jan 2012 21:51:02 GMT</pubDate></item><item><title><![CDATA[Reply to Array von Objekten an Funktionen übergeben on Sat, 07 Jan 2012 22:47:31 GMT]]></title><description><![CDATA[<p>Eisenspitze schrieb:</p>
<blockquote>
<p>@ SeppJ<br />
Du müsstest mal die Schulungsunterlagen sehen..da waren teilweise auch die Codebeispiele falsch und haben nicht funktioniert..und das Buch das uns empfohlen wurde enthält NICHTS (!!) über Klassen... <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /> ..also bitte entschuldige mir/uns dass wir Schwierigkeiten haben... <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>
</blockquote>
<p>Welches Buch wurde euch denn empfohlen?</p>
<p>Aus deinem letzten Beitrag schließe ich, dass sich das mit meiner 'falschen Interpretation' wohl erledigt hat, oder?<br />
Ich bezog mich auf den Prototyp</p>
<pre><code class="language-cpp">void MenueZimmerstati(EinzelZimmer, DoppelZimmer);
</code></pre>
<p>der mit</p>
<pre><code class="language-cpp">void MenueZimmerstati(EinzelZimmer EinzelZimmerArray[10], DoppelZimmer DoppelZimmerArray[10])
</code></pre>
<p>nicht zusammenpasst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2165074</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2165074</guid><dc:creator><![CDATA[Jonas OSDever]]></dc:creator><pubDate>Sat, 07 Jan 2012 22:47:31 GMT</pubDate></item><item><title><![CDATA[Reply to Array von Objekten an Funktionen übergeben on Sat, 07 Jan 2012 23:21:03 GMT]]></title><description><![CDATA[<p>Verzeih mir bitte falls es so rübergekommen ist als würde ich dir was unterstellen... <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>Das ganze beschäftigt mich jetzt schon ein paar Tage und ich stelle fest dass ich einfach noch keine Ahnung vom C++ programmieren habe, wenn ich hier im Netz so rumsurve... ..und ich wusste einfach nicht dass man die [] auch an den Datentyp schreiben kann/muss.<br />
Kannst du mir das vielleicht erklären..? Was passiert da..?</p>
<p>Das Buch heißt C-Programmierung lernen, von André Willms - und zu meiner Schande muss ich gestehen da steht schon was, nur über Strukturen und wie ich mittlerweile rausgefunden habe gibt´s Klassen erst seit C++... <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
<p>Das nächste Mal schmeiß ich das Skript weg und mach´s gleich aus´m Buch, dann kann ich´s auch leister lesen wenn fortlaufende Bsp. drin sind... <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>Also nochmals Danke..!! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2165093</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2165093</guid><dc:creator><![CDATA[Eisenspitze]]></dc:creator><pubDate>Sat, 07 Jan 2012 23:21:03 GMT</pubDate></item><item><title><![CDATA[Reply to Array von Objekten an Funktionen übergeben on Sat, 07 Jan 2012 23:26:12 GMT]]></title><description><![CDATA[<p>Sollt ihr denn jetzt C oder C++ nutzen? Bist du dir da sicher? Warum sollte man ein C Buch empfehlen, wenn C++ gefragt ist?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2165097</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2165097</guid><dc:creator><![CDATA[cooky451]]></dc:creator><pubDate>Sat, 07 Jan 2012 23:26:12 GMT</pubDate></item><item><title><![CDATA[Reply to Array von Objekten an Funktionen übergeben on Sat, 07 Jan 2012 23:29:20 GMT]]></title><description><![CDATA[<p>Ganz sicher. Empfohlen wurde uns das Buch und als Kompiler Dev C++.<br />
Meinem Statikprof (der auch einiges mit C/C++ macht) meinte es wäre eh besser zuerst C zu lernen, dabei hat er auch die Zeiger erwähnt, also hab ich mich nicht weiter gewundert...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2165099</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2165099</guid><dc:creator><![CDATA[Eisenspitze]]></dc:creator><pubDate>Sat, 07 Jan 2012 23:29:20 GMT</pubDate></item><item><title><![CDATA[Reply to Array von Objekten an Funktionen übergeben on Sat, 07 Jan 2012 23:37:37 GMT]]></title><description><![CDATA[<p>Eisenspitze schrieb:</p>
<blockquote>
<p>Kompiler Dev C++.</p>
</blockquote>
<p>oO Na dann viel Spaß.<br />
Wie viel Zeit bleibt denn noch für diese Aufgabe? Ich meine man kann schon gut erst C und dann C++ lernen, aber auch für die Grundlagen sollte man etwas Zeit einplanen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2165106</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2165106</guid><dc:creator><![CDATA[cooky451]]></dc:creator><pubDate>Sat, 07 Jan 2012 23:37:37 GMT</pubDate></item><item><title><![CDATA[Reply to Array von Objekten an Funktionen übergeben on Sat, 07 Jan 2012 23:44:00 GMT]]></title><description><![CDATA[<p>Die Empfehlung hab ich übergangen und nutze Visual C++, dass ist zum Lernen und Fehlersuchen deutlich effektiver... <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>Abgeben muss ich die Aufgabe am Mo., das ist noch zu schaffen..das einzige Problem war jetzt wirklich die Übergabe der Zimmer, bei mir jetzt eben in Arrays, an andere Funktionen. <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="🙄"
    /></p>
<p>Klassen/Unterklassen definieren, die Vererbung, Funktionen auslagern, Menüs erstellen usw habe ich kapiert, ziemlich sicher <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="😉"
    /> , das war auch relativ leicht zu recherchieren. Auch &quot;normale&quot; Variablen mit Zeigern an Funktionen übergeben hab ich schon mal mit Erfolg versucht..also den Rest bekomme ich wohl hin..und ich hab halt auch mega Spaß dabei... :p</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2165109</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2165109</guid><dc:creator><![CDATA[Eisenspitze]]></dc:creator><pubDate>Sat, 07 Jan 2012 23:44:00 GMT</pubDate></item><item><title><![CDATA[Reply to Array von Objekten an Funktionen übergeben on Sun, 08 Jan 2012 08:23:38 GMT]]></title><description><![CDATA[<p>Also erstmal, ich will dir nix unterstellen. Ich möchte nur, dass du verstehst, warum mein Tipp funktioniert hat. Denn es gibt nichts schlimmeres (insbesondere für Anfänger) als etwas zu programmien, ohne zu wissen warum und wie es funktioniert.<br />
Also, hier kommt die Erklärung. Für den Compiler ist Typ und Typ[] ein Unterschied. Das liegt daran, dass ein Feld (also mehrere Variablen dieses Typs im Speicher aneinandergekleistert) so gesehen eine Art Container für mehrere Variablen gleichen Typs ist, die Über einen Index angesprochen werden. Und so erklärt sich letzendlich auch warum</p>
<pre><code class="language-cpp">Foo(Bar);
</code></pre>
<p>und</p>
<pre><code class="language-cpp">Foo(Bar[]);
</code></pre>
<p>nicht das gleiche sind. Der Compiler kann so unterscheiden, ob du nur eine Variable vom Typ Bar oder ein Feld vom Typ Bar haben willst. Wär ja auch schlimm wenn nicht. Was sollte z.B.</p>
<pre><code class="language-cpp">int Quadrat(int Zahl) { return Zahl * Zahl; }
</code></pre>
<p>machen, wenn ihm ein Array übergeben wird (sofern der Compi das durchgehen lassen würde)? Du siehst: Es hat seinene Gründe auch bei Parametern zwischen Array-Parametern und normalen Parametern zu unterscheiden.</p>
<p>EDIT: Die Frage von cooky541 stell ich mir aber auch: Warum C Buch, wenn C++ gelehrt wird? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2165113</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2165113</guid><dc:creator><![CDATA[Jonas OSDever]]></dc:creator><pubDate>Sun, 08 Jan 2012 08:23:38 GMT</pubDate></item><item><title><![CDATA[Reply to Array von Objekten an Funktionen übergeben on Sat, 07 Jan 2012 23:55:03 GMT]]></title><description><![CDATA[<p>Eisenspitze schrieb:</p>
<blockquote>
<p>Die Empfehlung hab ich übergangen und nutze Visual C++, dass ist zum Lernen und Fehlersuchen deutlich effektiver...</p>
</blockquote>
<p><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>Eisenspitze schrieb:</p>
<blockquote>
<p>Abgeben muss ich die Aufgabe am Mo., das ist noch zu schaffen..</p>
</blockquote>
<p>Die Frage ist halt wie viel du verstanden hast..</p>
<p>Eisenspitze schrieb:</p>
<blockquote>
<p>und ich hab halt auch mega Spaß dabei</p>
</blockquote>
<p>Das ist immer ein gutes Zeichen dafür, dass du das auch packst.</p>
<p>Wenn du Pointer verstanden hast vielleicht noch ein Tipp zu Arrays:</p>
<pre><code class="language-cpp">void foo(int i[10]); // daraus macht der Compiler:
void foo(int *i)
{
  i[5] = 3; // Daraus macht der Compiler:
  *(i + 5) = 3;
}
</code></pre>
<p>Nur zum Verständnis. Das bedeutet nämlich dass Arrays so nicht kopiert werden, und das bedeutet, dass du die Dinge, die du in der Funktion am Array änderst, auch außerhalb änderst. (Und dass sich sizeof nicht so verhält wie man es vielleicht erwartet.)</p>
<p>Weiter ist die Verwendung von system(&quot;pause&quot;) im Code etwas fragwürdig, da das nicht überall funktioniert. Vielleicht postest du mal etwas mehr von der Aufgabe wenn du weiter fortgeschritten bist, aber bitte ohne jede Zeile einzeln zu kommentieren, das bringt einen total aus dem Lesefluss. <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/2165114</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2165114</guid><dc:creator><![CDATA[cooky451]]></dc:creator><pubDate>Sat, 07 Jan 2012 23:55:03 GMT</pubDate></item><item><title><![CDATA[Reply to Array von Objekten an Funktionen übergeben on Sat, 07 Jan 2012 23:53:57 GMT]]></title><description><![CDATA[<p>Jonas OSDever schrieb:</p>
<blockquote>
<p>EDIT: Die Frage von Pi stell ich mir aber auch: Warum C Buch, wenn C++ gelehrt wird? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
</blockquote>
<p>Warum halten mich alle für ne Zahl? -.-</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2165115</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2165115</guid><dc:creator><![CDATA[cooky451]]></dc:creator><pubDate>Sat, 07 Jan 2012 23:53:57 GMT</pubDate></item><item><title><![CDATA[Reply to Array von Objekten an Funktionen übergeben on Sun, 08 Jan 2012 00:24:29 GMT]]></title><description><![CDATA[<p>@Jonas<br />
Danke für die Erklärung, es ist echt unbefriedigend was zu programmieren was ich dann nicht mehr wiederholen kann... <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><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/25760">@cooky451</a><br />
Auch dir danke für deinen Hinweis, das denke ich ist mir klar... <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
<p>Wegen dem Code posten, kann ich auch Dateien hochladen..? Es ist schon ziemlich viel Code... <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /> ..alles peinlich genau kommentiert, da gibt´s Punkte drauf... <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="😉"
    /> ..aber dass lösch ich dann halt raus... <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
<p>Wie macht ihr das mit den Kommentaren..? Teilweise hab ich schon Code ganz ohne gesehen, ist das nur schwierig weil ich Neuling bin..??</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2165127</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2165127</guid><dc:creator><![CDATA[Eisenspitze]]></dc:creator><pubDate>Sun, 08 Jan 2012 00:24:29 GMT</pubDate></item><item><title><![CDATA[Reply to Array von Objekten an Funktionen übergeben on Sun, 08 Jan 2012 00:26:27 GMT]]></title><description><![CDATA[<p>..sorry, es ist auch schon spät..gemeint war ob das nur schwierig für mich zum leesn ist, weil ich Neuling bin... <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>Gute Nacht, morgen geht´s weiter... <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2165128</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2165128</guid><dc:creator><![CDATA[Eisenspitze]]></dc:creator><pubDate>Sun, 08 Jan 2012 00:26:27 GMT</pubDate></item><item><title><![CDATA[Reply to Array von Objekten an Funktionen übergeben on Sun, 08 Jan 2012 00:47:09 GMT]]></title><description><![CDATA[<p>Eisenspitze schrieb:</p>
<blockquote>
<p>Wie macht ihr das mit den Kommentaren..?</p>
</blockquote>
<p>Den meisten Anfängern wird leider nur gesagt: Kommentiert viel und alles! Kommentare sind toll! (Könnte ein Zitat von meinem Informatiklehrer sein..)<br />
Aber wie und was man kommentiert wird völlig vernachlässigt. Denn viel wichtiger ist: Kommentieren <strong>warum</strong> man etwas macht und <strong>nicht was</strong> man macht, denn das steht ja im Code. Es gibt nichts Schlimmeres als:</p>
<pre><code class="language-cpp">int main()
{
  // Datei öffnen
  std::ifstream file(&quot;blubb.txt&quot;);
  // Aus Datei lesen
  std::string s;
  file &gt;&gt; s;
  // ...
}
</code></pre>
<p>Das ist schon mal die Grundregel. Weiter geht es mit: Großflächig kommentieren. Vielleicht vor eine lange Funktion/Klasse schreiben was sie macht, aber nicht jede Zeile kommentieren. Du darfst ruhig davon ausgehen, dass derjenige der den Code liest C++ kann, sonst hilft auch kein Kommentar mehr. Einzelne Zeilen nur dann kommentieren, wenn du denkst dass sie schwer verständlich sind. Und auch dann an die erste Regel denken: Kommentieren warum man etwas macht und nicht was man macht.</p>
<p>Und nein, man kann hier nichts hochladen. Solange du nicht schon wie deine Kollegen 600 Zeilen Code hast, poste es einfach hier. Ansonsten lade es halt irgendwo hoch. Oder nutze gleich Seiten wie <a href="http://pastebin.com" rel="nofollow">http://pastebin.com</a> .</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2165134</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2165134</guid><dc:creator><![CDATA[cooky451]]></dc:creator><pubDate>Sun, 08 Jan 2012 00:47:09 GMT</pubDate></item><item><title><![CDATA[Reply to Array von Objekten an Funktionen übergeben on Sun, 08 Jan 2012 08:36:01 GMT]]></title><description><![CDATA[<p>@cooky541: Sorry, du bietest dich halt als Pi an :p <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /><br />
<a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/27227">@Eisenspitze</a>: Wie gesagt, wenns nicht übermäßig lang ist Poste es einfach, ansonsten lads irgendow hoch.<br />
Zum hierposten: Wesentliche kommentare dürfen drin bleiben (z.B. die Beschreibung was eine Funktion von dier tut (bzw. tuen sollte) aber unwesentliches (z.B. dass man mit ofstream Dateien schreiben kann) fliegt raus. Außerdem solltest du den Code auf die Funktion in der der Fehler (vermutlich) auftritt sowie ihren Aufruf reduzieren. Beim Aufruf solltest du aber auch den für den Aufruf wichtigen Code mitposten, z.B. wie bestimmte Variablen initialisiert werden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2165163</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2165163</guid><dc:creator><![CDATA[Jonas OSDever]]></dc:creator><pubDate>Sun, 08 Jan 2012 08:36:01 GMT</pubDate></item><item><title><![CDATA[Reply to Array von Objekten an Funktionen übergeben on Sun, 08 Jan 2012 11:39:50 GMT]]></title><description><![CDATA[<p>Danke für den Tipp, der ist echt gut.</p>
<p>Die Dateien habe ich hochgeladen, sorry dass ich auch hier ein Neuling bin, ich hab´s bei Megaupload hochgeladen:</p>
<p>main: <a href="http://www.megaupload.com/?d=9MUL27GV" rel="nofollow">http://www.megaupload.com/?d=9MUL27GV</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2165218</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2165218</guid><dc:creator><![CDATA[Eisenspitze]]></dc:creator><pubDate>Sun, 08 Jan 2012 11:39:50 GMT</pubDate></item><item><title><![CDATA[Reply to Array von Objekten an Funktionen übergeben on Sun, 08 Jan 2012 11:59:17 GMT]]></title><description><![CDATA[<p>stopp, falscher Button..! <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="🙄"
    /> SORRY, da kommt noch mehr... <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
<p>und außerdem komme ich mit Megaupload nicht zurecht... <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
<p>main: <a href="http://www.loaditup.de/677835-s2k64rptp2.html" rel="nofollow">http://www.loaditup.de/677835-s2k64rptp2.html</a></p>
<p>O-Klasse Zimmer: <a href="http://www.loaditup.de/677836-8sq56q8cks.html" rel="nofollow">http://www.loaditup.de/677836-8sq56q8cks.html</a><br />
U-Klasse Einzel: <a href="http://www.loaditup.de/677837-7n5zn6wx55.html" rel="nofollow">http://www.loaditup.de/677837-7n5zn6wx55.html</a><br />
U-Klasse Doppel: <a href="http://www.loaditup.de/677838-26xxm9hkt5.html" rel="nofollow">http://www.loaditup.de/677838-26xxm9hkt5.html</a></p>
<p>Header Funktionen: <a href="http://www.loaditup.de/677844-qfavzvmw3k.html" rel="nofollow">http://www.loaditup.de/677844-qfavzvmw3k.html</a></p>
<p>Menü Zimmerstati: <a href="http://www.loaditup.de/677839-wdba8vwpxx.html" rel="nofollow">http://www.loaditup.de/677839-wdba8vwpxx.html</a><br />
Stati gefragte Zimmer: <a href="http://www.loaditup.de/677841-5vtr89n2df.html" rel="nofollow">http://www.loaditup.de/677841-5vtr89n2df.html</a><br />
Menü Zimmerbelegen: <a href="http://www.loaditup.de/677840-ueu3vqb6n7.html" rel="nofollow">http://www.loaditup.de/677840-ueu3vqb6n7.html</a><br />
Zimmer belegen: <a href="http://www.loaditup.de/677842-gtravuvtsv.html" rel="nofollow">http://www.loaditup.de/677842-gtravuvtsv.html</a></p>
<p>Zimmernummer eingeben: <a href="http://www.loaditup.de/677843-c42nxr4834.html" rel="nofollow">http://www.loaditup.de/677843-c42nxr4834.html</a></p>
<p>So läuft bisher alles, fertig bin ich noch nicht ein paar Punkte fehlen noch.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2165228</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2165228</guid><dc:creator><![CDATA[Eisenspitze]]></dc:creator><pubDate>Sun, 08 Jan 2012 11:59:17 GMT</pubDate></item><item><title><![CDATA[Reply to Array von Objekten an Funktionen übergeben on Sun, 08 Jan 2012 12:13:01 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/27227">@Eisenspitze</a>: Es gibt eine Editieren-Funktion. Der Link is bei deinen eigenen Beiträgen rechts in der Titelzeile. So kannst du's wettmachen, mal den falschen Button gedrückt oder etwas falsch geschrieben zu haben.<br />
Die Links muss ich erstmal durchgucken.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2165234</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2165234</guid><dc:creator><![CDATA[Jonas OSDever]]></dc:creator><pubDate>Sun, 08 Jan 2012 12:13:01 GMT</pubDate></item><item><title><![CDATA[Reply to Array von Objekten an Funktionen übergeben on Sun, 08 Jan 2012 13:21:17 GMT]]></title><description><![CDATA[<p>Kritikpunkte zu main.cpp:</p>
<ul>
<li>system(&quot;cls&quot;);</li>
<li>Zu viel system(&quot;Pause&quot;) (warum brauchst du das eig.)?</li>
<li>Cahr-Array mit der Länge 1 benutzt (das '\0'-Zeichen am Ende eines Strings benötigit dieses Byte, in das variabel lange Strings eingelesen werden, d.h. schon wenn charMenupunkt[0] != '\0' ist hast du in Speicher geschrieben, der dir nicht gehört),</li>
<li>die Umwandlung von char[] nach std::string ist völlig sinnlos und</li>
<li>deine Plausiblitätsprüfung ist auch nicht unbedingt geignet. Das Problem gekürzt sieht so aus:</li>
</ul>
<pre><code class="language-cpp">string strMenupunkt;
cin &gt;&gt; strMenupunkt;

//entweder
switch(strMenupunkt[0])
{
    //...
}

//oder
if(strMenupunkt == &quot;1&quot;) { }
else if(strMenupunkt == &quot;2&quot;) { } //...
else cout &lt;&lt; &quot;Fehlerhafte Eingabe\n&quot;;
</code></pre>
<p>Kritikpunkte Zimmer.h:</p>
<ul>
<li>NIEMALS using namespace std; in Header-Dateien</li>
<li>Für alles Strings zu verwenden ist nicht immer sinnvoll, stdrBelegt könnte man z.B. zu bool bBelegt; machen</li>
<li>belegen könnte man folgendermaßen verbessern:</li>
</ul>
<pre><code class="language-cpp">void belegen()
{
	bool bEingabeOk = false;

	bBelegt = true; //nur wenn du Tipp2 beachtest, ansonsten wie gehabt

	while (!bEingabeOk)
	{
		cout &lt;&lt; &quot;Bitte den Vor- und Nachname des Gastes eintragen.\n&quot;;
		cout &lt;&lt; &quot;   &gt; &quot;;
		getline(cin, strGast);

		if (strGast.length() &lt; 5)
		{
			cout &lt;&lt; &quot;Bitte geben Sie einen gültigen Namen ein\n&quot;;
		}
		else bEingabeOk = true;
	}
}
</code></pre>
<ul>
<li>Zimmerdatenausgeben könnte man virtual machen, um es in der Abgeleiteten Klasse zu überschreiben</li>
<li>Die Funktionen für die Zimmernummererzeugung könnte man pure vritual machen</li>
</ul>
<p>Kritikpunkte zu Einzelzimmer.h (und damit auch zu Doppelzimmer.h, ich gucks mir nicht erst an, weils wahrscheinlich sehr änlich ist):</p>
<ul>
<li>Die Funktion Zimmernummer erzeugen funktioniert nur von 1 bis 10. Bei Stringstream kann man doch die Breite und das Füllzeichen einstellen.</li>
<li>Für eine Bessere OO nehm dir die Tipps von Zimmer.h zu herzen und bastel so die Klasse mit den Überschreibungen um</li>
</ul>
<p>Headerfunktionen: Bis auf using namespace erstmal keine Kritik. Aber mal Zwischenfrage, hat es einen Grund, warum du hier nie Parameternamen mitgiebst?</p>
<p>MenuZimmerstati.cpp, MenuZimmerbelegen.cpp, Zimmernummereingeben.cpp: siehe Kritik zu main</p>
<p>StatiGefragteZimmer.cpp: system(&quot;cls&quot;); und müsste natürlich angepasst werden wenn Änderung von Zimmer-Klasse durchgeführt wird.</p>
<p>Zimmerbelegen.cpp: soweit keine Kritik</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2165245</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2165245</guid><dc:creator><![CDATA[Jonas OSDever]]></dc:creator><pubDate>Sun, 08 Jan 2012 13:21:17 GMT</pubDate></item><item><title><![CDATA[Reply to Array von Objekten an Funktionen übergeben on Mon, 09 Jan 2012 17:29:40 GMT]]></title><description><![CDATA[<p>Danke das mir deine Zeit schenkst und deine vielen Tipps..! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
<p>Hab die Aufgabe jetzt schon abgeben, weil´s heute einfach drunter und drüber ging und ich eh schon knapp geworden bin.<br />
Trotzdem will ich deine Tipps natürlich haben..! <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>Also:<br />
- wie bekomme ich es anders hin die Konsole wieder zu löschen außer mit system(&quot;cls&quot;)..? (hab ich aus dem Netz übrigens) Gemacht hab ich´s damit sich die Ausgabe schöner liest.</p>
<p>- genauso bei system(&quot;Pause&quot;), welche Alternative habe ich (return 0;..?), und warum geht das nicht überall..?</p>
<p>- dass strMenuepunkt[0] ein char ist habe ich leider erst kapiert als ich mal probiert habe auf einzelne Zeichen in einem String zuzugreifen..da hast du natürlich Recht..! <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="🙄"
    /></p>
<blockquote>
<p>NIEMALS using namespace std; in Header-Dateien</p>
</blockquote>
<p>- das klingt nach Gefahr, also bitte sag mir warum nicht..?</p>
<blockquote>
<p>Für alles Strings zu verwenden ist nicht immer sinnvoll...</p>
</blockquote>
<p>- da hast du auch Recht, ich war da nur so beschäftigt mit den Klassen und den anderen Problemen dass ich darüber weniger nachgedacht hab. In den Klasen wollte ich zuerst die Variablen strRechnungGestellt und strStatus als bool deklarieren, hab ich dann aber wegen der Werteausgabe dagegen entschieden.</p>
<p>- mit virtuell geht´s wieder in Richtung Zeiger, oder..? Das sagt mir leider noch zu wenig, virtual/pure virtual gar nichts. In den Semesterferien würde ich gern ein Buch durch machen, in Ruhe, hast du da vielleicht eine Empfehlung..?<br />
Dazu bitte ich dich auch noch um deine Meinung: muss ich C können um C++ verstehen zu können..? Ist C noch so präsent oder wird es von C++ abgelöst..?<br />
Mein Studiengang ist Produktionstechnik und logischerweise ist mir noch nicht &gt;ganz&lt; klar wohin ich mich spezialisieren will, da werden sich im Laufe des Studiums mit Sicherheit noch Themen ergeben von denen ich bis jetzt noch nicht mal gehört habe.<br />
Programmieren macht mir Spaß und ich saug es richtig in mich hinein (wenn die Unterlagen was gescheites sind <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /> ), also das werde ich auf jeden Fall machen...<br />
Bisher habe ich einige Excel Makros geschrieben, auch größere..durch meine damalige Arbeit war da nur die Zeit für´s oberflächliche, &quot;funktionale&quot; Wissen - das hat mich da schon geärgert, auch deswegen noch mal die Bitte um den Buchtip damit ich´s hier besser machen kann. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
<p>- Zum Zimmernummer erstellen: meinst du damit ein Variables Feld nehmen..? (Stringstream ist auch aus dem Netz, nicht aus dem Kurs...) Vorgabe waren 10 Zimmer, deswegen habe ich nicht mehr Zeit investiert..das es geht habe ich im Netz schon mal nebenbei gelesen, aber das war nicht Thema des Kurses.</p>
<p>- Zu OOP: mal im Ernst, die Zimmer in Ober- &amp; Unterklassen aufzuteilen war hier doch der totale Mist, oder..? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /> Gemacht hab ich´s weil ich dachte es ist ne gute Übung zum Thema Vererbung und zur Verinnerlichung des ganzen Themas, aber hier habe ich doch eine Menge Zeit verplempert die Methoden der ganzen Klassen zu schreiben - bei einer einzigen Klasse Zimmer wäre das doch übersichtlicher und kürzer gewesen..?? Noch dazu bin ich total skeptisch ob ich das nicht sowieso alles zu kompliziert und durcheinander programmiert habe... <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
<blockquote>
<p>Headerfunktionen: ... Aber mal Zwischenfrage, hat es einen Grund, warum du hier nie Parameternamen mitgiebst?</p>
</blockquote>
<p>- wie meinst du das..? So wie ich´s gemacht habe, habe ich´s im Netz recherchiert (Funktionen in andere Dateien auslagern war auch nicht Teil des Kurses, weil im Netz einfach ne Menge steht und ich´s da gelesen habe, im Bezug auf Header allgemein, hat´s mich einfach interessiert...)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2165956</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2165956</guid><dc:creator><![CDATA[Eisenspitze]]></dc:creator><pubDate>Mon, 09 Jan 2012 17:29:40 GMT</pubDate></item><item><title><![CDATA[Reply to Array von Objekten an Funktionen übergeben on Mon, 09 Jan 2012 18:25:18 GMT]]></title><description><![CDATA[<p>Die Konsole löschen macht fast nie Sinn, aber naja: <a href="https://www.google.de/search?&amp;q=site%3Amsdn.microsoft.com%20FillConsoleOutputCharacter" rel="nofollow">Google: site:msdn.microsoft.com FillConsoleOutputCharacter</a> Ist etwas komplizierter als mit system, aber du erzeugst wenigstens nicht immer einen neuen Prozess. Und es läuft nur auf Windows, aber das tut system(&quot;cls&quot;) auch.<br />
System(&quot;pause&quot;) geht eig. überall, aber es ist halt hässlich, eben weils einen neuen Prozess erzeugt was im Allgemeinen Permformanceeinbusen bedeutet - für Übungsprogramme ist die Performance zwar vernachlässigbar, aber gewöhn dir diese System-Schei... gar nicht erst an.<br />
using namespace in Headern kann Namenskonflikte hervorrufen. Aber da gabs schon einige Threads im Forum; bemüh mal die Suchfunktion.<br />
Und (pure) virtual hat rein gar nix mit Zeigern zu tun; Stichwort hier ist Vererbung und Überschreibung. Ach ja: Das mit den Basis- und abgeleiteten Klassen (nicht Ober und Unterklassen - brrrr, bei dem Begriff schüttels mich) ist in diesem Kleinen Beispiel zwar nicht zwangsläufig nötig, aber es macht zur Übung trotzdem Sinn.<br />
Und C muss man nicht können um C++ zu verstehen. Bis auf wenige Ausnahmen kann man sogar behaupten, C ist eine Untermenge von C++ - der Name soll ja extra auf die Kompatiblität hinweisen. Im Gegenteil: C ist für C++-Anfänger teilweise sogar hindelich. Das soll bedeuten: In C bist du zu bestimmten Vorgehensweisen gezwungen (z.B. durch die Fehlende OOP-Unterstützung) die man in C++ so nicht mehr machen sollte. Viele, die von C umsteigen benutzen dann weiter diese Vorgehensweis und sehen C++ als &quot;C + cout + cin&quot; an.<br />
Bei den Parameternamen in der Deklaration scheiden sich die Geister, aber ich bin dafür, denn wenn du z.B. eine Bibliothek schreibst die Closed-Source ist, dann ist die Header-Datei das einzige was der Programmierer zur Verfügung hat. Und ein aussagekräftiger Parameter kann dem Programmierer schon helfen um zu sagen wofür der Parameter da ist. Nichts ist nerviger als sich bei sowas durch endlos lange Dokumentationen zu wühlen, weil man z.B. nicht weiß, wofür der String (das Suchkriterium) bei deiner ZimmerStatus-Funktion da ist! Außerdem zeigt Visual Studio auf Basis des Headers die Intellisense- und Parameterinfos an ;).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2166017</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2166017</guid><dc:creator><![CDATA[Jonas OSDever]]></dc:creator><pubDate>Mon, 09 Jan 2012 18:25:18 GMT</pubDate></item></channel></rss>