<?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[class]]></title><description><![CDATA[<p>hallo,</p>
<p>ich bin neu in dem Forum und bei c++ auch, ich hoffe ihr könnt mir helfen. Irgendwie weiss ich nicht mehr wie es weiter geht.<br />
so hier ist mein code :</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;cstring&gt;
using namespace std;

class teilnehmer
{
private :
	char vorname [30] ;
	char nachname [30];
	int matrikelnummer;
public:
	teilnehmer ();
	teilnehmer (char v[30], int m, char n[30]);
	void print ();
};

teilnehmer :: teilnehmer ()
{
vorname [30] = '0';
nachname [30] = '-';
int matrikelnummer = 0;
}

teilnehmer :: teilnehmer(char v [30], int m, char n[30])
{
vorname [30] = v [30];
matrikelnummer = m;
nachname [30] = n [30];

        cout &lt;&lt; &quot;Der Vorname ist : &quot; &lt;&lt;  v &lt;&lt; &quot; und die Matrikelnummer ist : &quot; &lt;&lt; m &lt;&lt; endl;

}

void teilnehmer :: print ()
{

	if (nachname [30]  != '-')
	{
		cout &lt;&lt; &quot;Der Nachname ist : &quot; &lt;&lt; nachname [30] &lt;&lt; endl;
	}
}

int main ()
{
	teilnehmer t1 (&quot;Kevin&quot;, 123456, &quot;Mueller&quot;);
	t1.print();
	teilnehmer t2 (&quot;Franz&quot;, 112233, &quot;Schuhmacher&quot;);
	t2.print();
	teilnehmer t3 (&quot;Lisa&quot;, 102356  , &quot;Fritz&quot;);
	t3.print();
	teilnehmer t4 (&quot;Manfred&quot;, 258963, &quot;Schmitt&quot;);
	t4.print();

	return 0;
}
</code></pre>
<p>ich hoffe das war nicht zu lang.<br />
ein Teil der Aufgabe verstehe ich nicht und genau das ist mein Problem :</p>
<blockquote>
<p>Definieren Sie die Tabelle der 16 Teilnehmer als ein Array aus Objekten der Klasse<br />
„Teilnehmer“. Befüllen Sie die ersten 4 Objekte mit einer Initialisierungsliste. Die<br />
restlichen 12 Objekte wird der Standardkonstruktor befüllen.<br />
Bauen Sie für das Ausgeben eine geeignete Schleife.</p>
</blockquote>
<p>Für eure hilfe bedanke ich mich im Voraus.</p>
<p>/edit pumuckl: cpp-Tags, quote-Tags. Nächstemal bitte selber machen!</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/264304/class</link><generator>RSS for Node</generator><lastBuildDate>Fri, 04 Sep 2026 15:37:44 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/264304.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 06 Apr 2010 07:19:32 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to class on Tue, 06 Apr 2010 07:56:11 GMT]]></title><description><![CDATA[<p>hallo,</p>
<p>ich bin neu in dem Forum und bei c++ auch, ich hoffe ihr könnt mir helfen. Irgendwie weiss ich nicht mehr wie es weiter geht.<br />
so hier ist mein code :</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;cstring&gt;
using namespace std;

class teilnehmer
{
private :
	char vorname [30] ;
	char nachname [30];
	int matrikelnummer;
public:
	teilnehmer ();
	teilnehmer (char v[30], int m, char n[30]);
	void print ();
};

teilnehmer :: teilnehmer ()
{
vorname [30] = '0';
nachname [30] = '-';
int matrikelnummer = 0;
}

teilnehmer :: teilnehmer(char v [30], int m, char n[30])
{
vorname [30] = v [30];
matrikelnummer = m;
nachname [30] = n [30];

        cout &lt;&lt; &quot;Der Vorname ist : &quot; &lt;&lt;  v &lt;&lt; &quot; und die Matrikelnummer ist : &quot; &lt;&lt; m &lt;&lt; endl;

}

void teilnehmer :: print ()
{

	if (nachname [30]  != '-')
	{
		cout &lt;&lt; &quot;Der Nachname ist : &quot; &lt;&lt; nachname [30] &lt;&lt; endl;
	}
}

int main ()
{
	teilnehmer t1 (&quot;Kevin&quot;, 123456, &quot;Mueller&quot;);
	t1.print();
	teilnehmer t2 (&quot;Franz&quot;, 112233, &quot;Schuhmacher&quot;);
	t2.print();
	teilnehmer t3 (&quot;Lisa&quot;, 102356  , &quot;Fritz&quot;);
	t3.print();
	teilnehmer t4 (&quot;Manfred&quot;, 258963, &quot;Schmitt&quot;);
	t4.print();

	return 0;
}
</code></pre>
<p>ich hoffe das war nicht zu lang.<br />
ein Teil der Aufgabe verstehe ich nicht und genau das ist mein Problem :</p>
<blockquote>
<p>Definieren Sie die Tabelle der 16 Teilnehmer als ein Array aus Objekten der Klasse<br />
„Teilnehmer“. Befüllen Sie die ersten 4 Objekte mit einer Initialisierungsliste. Die<br />
restlichen 12 Objekte wird der Standardkonstruktor befüllen.<br />
Bauen Sie für das Ausgeben eine geeignete Schleife.</p>
</blockquote>
<p>Für eure hilfe bedanke ich mich im Voraus.</p>
<p>/edit pumuckl: cpp-Tags, quote-Tags. Nächstemal bitte selber machen!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1878100</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1878100</guid><dc:creator><![CDATA[pava]]></dc:creator><pubDate>Tue, 06 Apr 2010 07:56:11 GMT</pubDate></item><item><title><![CDATA[Reply to class on Tue, 06 Apr 2010 07:32:43 GMT]]></title><description><![CDATA[<p>Das was du bisher hast ist auch alles andere als optimal...<br />
Ich würde satt char vorname[30] gleich einen const char* nehmen, oder noch besser einen std::string.</p>
<pre><code class="language-cpp">vorname [30] = v [30];
</code></pre>
<p>Dir fehlen noch ordentlich Grundlagen, oder?<br />
vorname[30] gibt dir einen ungültigen (!) Wert im Array! Dein Array hat Länge 30, fängt bei 0 an, damit liegt der höchste Index bei 30-1=29.<br />
Außerdem willst du doch dem Vorname einen Wert zuweisen und nicht nur einen einzigen Buchstaben setzen.</p>
<p>Was aber jetzt dein Lehrer mit &quot;Initialisierungsliste&quot; genau meint, ist mir nicht klar. Eigentlich hat der Begriff eine spezielle Bedeutung:</p>
<pre><code class="language-cpp">class Person {
    const char* _name;
    const char* _vorname;
public:
    Person( const char* name, const char* vorname )
     : _name(name), _vorname(vorname) // DAS ist eine Initialisierungsliste!
    {}
};
</code></pre>
<p>Ich denke du solltest dein Script nochmal durcharbeiten und schauen ob da nicht alles benötigte drinnensteht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1878106</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1878106</guid><dc:creator><![CDATA[l&#x27;abra d&#x27;or]]></dc:creator><pubDate>Tue, 06 Apr 2010 07:32:43 GMT</pubDate></item><item><title><![CDATA[Reply to class on Tue, 06 Apr 2010 08:32:32 GMT]]></title><description><![CDATA[<p>pava schrieb:</p>
<blockquote>
<pre><code class="language-cpp">teilnehmer :: teilnehmer ()
{
vorname [29] = '0';
nachname [29] = '-';
int matrikelnummer = 0;
}
</code></pre>
</blockquote>
<p>Hier musst du auch folgendes bedenken:</p>
<p>- 29 ist der letzte, gültige Index, wie schon erwähnt wurde<br />
- vorname besitzt nun zwar eine terminierende Null, der Müll, der davor im Speicher liegt, ist aber trotzdem unschön. Du willst doch eine leere Variable vorname haben. Dementsprechend sollte das <em>erste</em> Element genullt werden, nicht das letzte. Oder man setzt die ganzen 30 Elemente auf Null (z.B. memset).<br />
- Was erhoffst du dir von dem '-' in nachname? Spätestens dort gehört die Nullterminierung hin.</p>
<p>Schau dir am besten mal per Debugger an, worauf die Zeiger zeigen, nachdem du diesen Konstruktor aufgerufen hast (nämlich der Datenmüll, der zufällig noch an diesen Stellen im Speicher liegt).</p>
<p>EDIT:<br />
Übersehen: Es muss natürlich 0 oder '\0' sein, nicht '0'...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1878120</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1878120</guid><dc:creator><![CDATA[_matze]]></dc:creator><pubDate>Tue, 06 Apr 2010 08:32:32 GMT</pubDate></item><item><title><![CDATA[Reply to class on Tue, 06 Apr 2010 08:21:43 GMT]]></title><description><![CDATA[<p>pava schrieb:</p>
<blockquote>
<p>#include &lt;iostream&gt;<br />
#include &lt;cstring&gt;<br />
using namespace std;</p>
<p>class teilnehmer<br />
{<br />
private :<br />
char vorname [30] ;<br />
char nachname [30];<br />
int matrikelnummer;<br />
public:<br />
teilnehmer ();<br />
teilnehmer (char v[30], int m, char n[30]);<br />
void print ();<br />
};</p>
</blockquote>
<p>Die bessere Alternative zu char[30] ist natürlich std::string. Aber man sollte trotzdem wissen, wie Felder funktionieren. Beispielsweise findet eine Typtransformation bei Funktionsparametern statt: Ein Parametertyp T[] oder T[N], wobei T irgendein anderer Typ (einschließlich Arrays) und N eine integrale Konstante ist, wird tatsächlich zu T* umgeformt. Arrays kann man nämlich nicht, wie &quot;normale&quot; Variablen benutzen. Man kann sie nicht einfach so kopieren oder zuweisen wie <code>int</code> s, <code>double</code> s, etc...</p>
<p>Dann gibt es noch so etwas, was sich &quot;array to pointer decay&quot; im Englischen schimpft. Das ist eine automatische Konvertierung, die einem ein Zeiger auf das erste Element geben kann. Beispiel:</p>
<pre><code class="language-cpp">int array[3];
int* z = array;  // ist das gleiche wie  = &amp;array[0];
</code></pre>
<p>&lt;zaunpfahlwink&gt;<br />
Das kann man in guten Lehrbüchern nachlesen. Sich ein gutes Lehrbuch anzuschaffen, ist auch keine schlechte Idee. Gerade bei C++, welches auf C aufbaut, gibt es viel Wissenswertes, was durch <em>reines</em> Experimentieren kaum erlernt werden kann. Im Gegenteil, die Gefahr beim <em>reinen</em> Experimentieren ist die, dass man falsche Schlüsse aus dem Compiler- / Programmverhalten ziehen kann. Dass Anfänger so viele Probleme mit Arrays und Zeigern haben, ist meiner Ansicht nach Beleg genug dafür.<br />
&lt;/zaunpfahlwink&gt;</p>
<blockquote>
<p>teilnehmer :: teilnehmer ()<br />
{<br />
vorname [30] = '0';<br />
nachname [30] = '-';<br />
int matrikelnummer = 0;<br />
}</p>
</blockquote>
<p>Da Du Dir die Länge der Zeichenketten nicht extra merkst, solltest Du sie wenigstens null-terminieren. Das Zeichen dafür ist '\0' und nicht '0'.</p>
<blockquote>
<p>teilnehmer :: teilnehmer(char v [30], int m, char n[30])<br />
{<br />
vorname [30] = v [30];<br />
matrikelnummer = m;<br />
nachname [30] = n [30];<br />
cout &lt;&lt; &quot;Der Vorname ist : &quot; &lt;&lt; v &lt;&lt; &quot; und die Matrikelnummer ist : &quot; &lt;&lt; m &lt;&lt; endl;<br />
}</p>
</blockquote>
<p>Nein, nein, nein. Bitte nochmal das Thema Arrays und Zeiger im Lehrbuch nachschlagen. v und n sind hier Zeiger (wegen der Typtransformation bei Funktionsparametern). vorname und nachnahme sind zwar Arrays, aber die [30]-Syntax ist sowieso falsch. <code>x[y]</code> ist -- sofern der [] Operator bei x nicht überladen worden ist -- äquivalent zu <code>*(x+y)</code> . Das heißt, Du greifst auf das 31ste Element des vorname-Arrays zu, welches es gar nicht gibt. Peng!</p>
<blockquote>
<p>void teilnehmer :: print ()<br />
{<br />
if (nachname [30] != '-')<br />
{<br />
cout &lt;&lt; &quot;Der Nachname ist : &quot; &lt;&lt; nachname [30] &lt;&lt; endl;<br />
}<br />
}</p>
</blockquote>
<p>Trifft hier genauso zu. Das <code>[30]</code> hat hier nichts zu suchen.</p>
<blockquote>
<p>int main ()<br />
{<br />
teilnehmer t1 (&quot;Kevin&quot;, 123456, &quot;Mueller&quot;);<br />
t1.print();<br />
teilnehmer t2 (&quot;Franz&quot;, 112233, &quot;Schuhmacher&quot;);<br />
t2.print();<br />
teilnehmer t3 (&quot;Lisa&quot;, 102356 , &quot;Fritz&quot;);<br />
t3.print();<br />
teilnehmer t4 (&quot;Manfred&quot;, 258963, &quot;Schmitt&quot;);<br />
t4.print();<br />
return 0;<br />
}</p>
</blockquote>
<p>Die mit Anführungszeiche eingeschlossenen Namen sind sogenannte &quot;Stringliterale&quot;. Sie sind vom Compiler automatisch erzeugte Arrays mit statischer Lebenszeit vom Typ [c]<strong>const</strong> char[N][/c], wobei N <em>jeweils</em> für die Länge der Zeichenkette plus eins (wegen Nullterminierung) steht. Dein Konstruktor erwartet aber Zeiger auf **nicht-**const char. Diese Konvertierung ist zwar (noch) aus Kombatibilitätsgründen zu C zulässig, aber unerwünscht und schlecht (&quot;deprecated&quot;).</p>
<blockquote>
<p>Definieren Sie die Tabelle der 16 Teilnehmer als ein Array aus Objekten der Klasse<br />
„Teilnehmer“. Befüllen Sie die ersten 4 Objekte mit einer Initialisierungsliste. Die<br />
restlichen 12 Objekte wird der Standardkonstruktor befüllen.<br />
Bauen Sie für das Ausgeben eine geeignete Schleife.</p>
</blockquote>
<p>Das war wahrscheinlich so gemeint:</p>
<pre><code class="language-cpp">int main() {
  Teilnehmer tabelle[16] = {
    {&quot;Karl&quot;, &quot;Meier&quot;},
    {&quot;Uwe&quot;, &quot;Schmidt&quot;},
    {&quot;Otto&quot;,&quot;Mustermann&quot;},
    {&quot;Ute&quot;,&quot;Obermeier&quot;}
  };
}
</code></pre>
<p>Allerdings funktioniert diese Syntax nur, falls <code>Teilnehmer</code> ein sogenannter <em>Aggregat</em>-Typ ist. Ein Aggregat-Typ hat aber (per Definition) keine benutzerdefinierten Konstruktoren oder Destruktoren, keine nicht-statischen Elemente, und <em>nur</em> öffentliche Elemente (public:) -- wenn ich mich richtig erinnere. Die Formulierung deines Lehrers &quot;restlichen 12 Objekte wird der Standardkonstruktor befüllen&quot; ist etwas ungünstig, da ints und char-Arrays und damit auch Aggregate, die nur aus ints und char-Arrays bestehen, keine &quot;Standardkonstruktoren&quot; haben, die das machen würden, was Dein Lehrer erwartet. Hier, bei dieser Initialisierungssyntax, wird eine sogenannte &quot;zero initialization&quot; für all die restlichen Elemente durchgeführt. Das ist eine von mehreren wissenswerten Sonderregeln, die das Lernen von C schwer machen. <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/1878121</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1878121</guid><dc:creator><![CDATA[krümelkacker]]></dc:creator><pubDate>Tue, 06 Apr 2010 08:21:43 GMT</pubDate></item><item><title><![CDATA[Reply to class on Tue, 06 Apr 2010 09:01:24 GMT]]></title><description><![CDATA[<p>hallo, danke für eure Antworte.<br />
So ich glaube es gibt einen Missverständniss was das hier betrifft:<br />
vorname [30] = '0';<br />
das hat der professor so verlangt (denke ich zumindest). so hier ist die aufgabe damit keine missverständnise mehr vorkommen <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 />
**</p>
<blockquote>
<p>Daten:<br />
· Das Programm soll die Daten von max. 16 Teilnehmern verwalten.<br />
· Pro Teilnehmer werden Nachname, Vorname und Matrikelnummer verwaltet.<br />
Ausgabe:<br />
· Das Programm soll eine Teilnehmerliste ausgeben, in Form einer Tabelle wie folgt:<br />
· Es soll die Spalten „Name“, „Vorname“ und „Matrikelnummer“ geben.<br />
· Zunächst muss eine passende Überschrift ausgegeben werden.<br />
· Dann folgen so viele Zeilen, wie es Teilnehmer gibt, für die Daten eingegeben<br />
wurden.<br />
Definieren Sie eine Klasse „Tellnehmer“ mit den Datenelementen<br />
· 30 Zeichen Vorname,<br />
· 30 Zeichen Nachname und<br />
· einer Integer Matrikelnummer.<br />
Programmieren Sie Konstruktoren für diese Klasse:<br />
· Einen Standard-Konstruktor, der den Vornamen mit dem Nullstring initialisiert und<br />
den Nachnamen den String “-“, sowie die Matrikelnummer auf 0 setzt.<br />
· Einen zweiten Konstruktor mit 3 Parametern; zwei Parameter sind Strings für<br />
Nachnamen und Vornamen, der dritte eine Integer für die Matrikelnummer.<br />
· Evtl. können Sie beide Konstruktoren durch die Verwendung von Vorgabewerten<br />
zu einem Konstruktor zusammenfassen.<br />
Erstellen Sie eine Methode „print()“ für diese Klasse , die eine Zeile der Tabelle<br />
schreibt, wenn es sich nicht um ein „leeres“ Objekt im Array handelt (Nachname “-“).<br />
Verwenden Sie für die Ausgabe der Daten den stream „cout“. Alternativ können Sie<br />
auch die aus C bekannte Funktion printf() verwenden.</p>
</blockquote>
<p>**</p>
<p>Was char vorname[30] und char nachname[30] betrifft, ich glaube mann muss definieren wie groß der String ist oder irre ich mich?<br />
eine kleine Frage hätte ich noch, warum muss ich einen Zeiger benutzen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1878143</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1878143</guid><dc:creator><![CDATA[pava]]></dc:creator><pubDate>Tue, 06 Apr 2010 09:01:24 GMT</pubDate></item><item><title><![CDATA[Reply to class on Tue, 06 Apr 2010 08:59:55 GMT]]></title><description><![CDATA[<p>krümelkacker schrieb:</p>
<blockquote>
<p>Die Formulierung deines Lehrers &quot;<em>restlichen 12 Objekte wird der Standardkonstruktor befüllen</em>&quot; ist etwas ungünstig, da ints und char-Arrays und damit auch Aggregate, die nur aus ints und char-Arrays bestehen, keine &quot;Standardkonstruktoren&quot; haben, die das machen würden, was Dein Lehrer erwartet. Hier, bei dieser Initialisierungssyntax, wird eine sogenannte &quot;zero initialization&quot; für all die restlichen Elemente durchgeführt.</p>
</blockquote>
<p>Ich korrigiere: Es handelt sich um eine &quot;Default-Initialisierung&quot; der restlichen Elemente (was aber im Fall von <code>int</code> und <code>char</code> auf eine &quot;zero initialization&quot; hinaus läuft). Das gilt auch für <a href="http://en.wikipedia.org/wiki/Plain_old_data_structure" rel="nofollow">POD</a>-Aggregate, die keine vom Compiler implizit erzeugten Konstruktoren haben.</p>
<p>Zitat aus dem C++ Standard, §8.5.1/7:</p>
<blockquote>
<p>If there are fewer initializers in the list than there are members in the aggregate, then each member not explicitly initialized shall be default-initialized.</p>
</blockquote>
<p>wobei default-initialized so definiert wird, §8.5/5:</p>
<blockquote>
<p>To default-initialize an object of type T means:<br />
- if T is a non-POD class type (clause 9), the default constructor for T is called (and the initialization is ill-formed if T has no accessible default constructor);<br />
- if T is an array type, each element is default-initialized;<br />
- otherwise, the object is zero initialized;</p>
</blockquote>
<p>zero-initialization steht gleich darüber erklärt. Ich spare mir das zitieren aber. Es ist wahrscheinlich sowieso Overkill. Aber es macht zumindest deutlich, dass es relativ viele Regeln gibt, die man <em>nur</em> durch Rumprobieren schlecht erraten kann.</p>
<p>Bei der Gelegenheit verweise ich auch noch auf camper's Post &quot;<a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-194356.html" rel="nofollow">Kleine Taxonomie für Typen</a>&quot;.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1878145</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1878145</guid><dc:creator><![CDATA[krümelkacker]]></dc:creator><pubDate>Tue, 06 Apr 2010 08:59:55 GMT</pubDate></item><item><title><![CDATA[Reply to class on Tue, 06 Apr 2010 09:40:02 GMT]]></title><description><![CDATA[<p>pava schrieb:</p>
<blockquote>
<p>So ich glaube es gibt einen Missverständniss was das hier betrifft:<br />
vorname [30] = '0';<br />
das hat der professor so verlangt (denke ich zumindest).</p>
</blockquote>
<p>Bestimmt nicht.</p>
<p>pava schrieb:</p>
<blockquote>
<p>so hier ist die aufgabe damit keine missverständnise mehr vorkommen <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 />
[...]</p>
</blockquote>
<p>Ich sehe da keine Bemerkung zur Art der Initialisierung. Aber nachdem, was er verlangt, kann die Klasse Teilnehmer kein Aggregat-Typ mehr sein. Ein Array davon müsste sich aber immernoch ähnlich initialisieren lassen:</p>
<pre><code class="language-cpp">int main() {
  Teilnehmer liste[16] = {
    Teilnemher(&quot;Hinz&quot;, &quot;Kunz&quot;, 1234),
    Teilnemher(&quot;Dings&quot;, &quot;Bums&quot;, 4321)
  };
}
</code></pre>
<p>pava schrieb:</p>
<blockquote>
<p>Was char vorname[30] und char nachname[30] betrifft, ich glaube mann muss definieren wie groß der String ist oder irre ich mich?</p>
</blockquote>
<p>Ja, is ja auch richtig. Aber das [30] gehört nicht zum Namen des Arrays dazu. Ich weiß nicht, warum Du glaubst, dass das [30] überall sonst noch dazugeschrieben werden muss.</p>
<p>pava schrieb:</p>
<blockquote>
<p>eine kleine Frage hätte ich noch, warum muss ich einen Zeiger benutzen?</p>
</blockquote>
<p>Wenn Du einen Konstruktor schreiben willst, der Deine Arrays befüllt, müsstest Du dich mit Funktionen wie sie im Header &lt;cstring&gt; zu finden sind, rumärgern. Diese Funktionen arbeiten mit Zeigern. Das sind Funktionen, die zB die Länge von C-Strings berechnen (Nullterminierung suchen), einen C-String kopieren, etc etc etc. Alles Käse eigentlich, wenn Du nicht std::string benutzen darfst. Käse, weil es damit relativ einfach wird, sich in den Fuß zu schießen.</p>
<p>Ich rate Dir, das, was der Prof erzählt, kritisch zu betrachten und in dem einen oder anderen guten Lehrbuch nachzuschlagen. Es mag nur sein didaktischer Plan sein, dass die Studenten sich mit C-Strings rumärgern sollen, bevor sie std::string kennenlernen und dann die Vorzüge richtig zu schätzen wissen. Es kann aber auch sein, dass der Prof von C++ nicht ganz so viel Ahnung hat, und Euch in Wirklichkeit &quot;C mit Klassen&quot; beibringt, ohne zu erwähnen, dass man sich mit Klassen (und eigenen Kopierkonstruktoren, Destruktoren, Zuweisungsoperatoren, überladenen Operatoren) ganz nette und leicht benutzbare eigene Typen bauen kann (wie zB std::string), auf die man aufbauen kann. Das Stichwort hier ist Abstraktion und Kapselung. Sorry, ich habe keine Lust, mir jedes Mal Gedanken zu machen, ob mein char-Array auch groß genug ist, und wie ich am besten Zeichenketten ohne Pufferüberläufe kopiere. Der eingefleischte C-Programmierer mag das anders sehen, doch auch in Projekten von C++-Hassern findet man Abstraktionsansätze für Zeichenketten, die auf so etwas ähnliches wie std::strig hinauslaufen -- nur dass man immer noch recht viel bei dem aufpassen muss, was man da tut; denn es gibt ja keine Kopierkonstruktoren, Destruktoren und überladene Zuweisungsoperatoren in C.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1878165</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1878165</guid><dc:creator><![CDATA[krümelkacker]]></dc:creator><pubDate>Tue, 06 Apr 2010 09:40:02 GMT</pubDate></item><item><title><![CDATA[Reply to class on Tue, 06 Apr 2010 12:45:20 GMT]]></title><description><![CDATA[<p>vielen dank an alle die mir geholfen haben <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="👍"
    /> , ich bin jetzt dank eure hilfe einbischen schlauer geworden, und weiss teilweise was für Fehler ich gemacht habe. Den Rest muss ich wie ihr das gesagt habt in meinem Buch noch lesen. Ich habe das Buch go to c++. ist das Buch ok? ich finde manchmal könnten ein paar mehr Beispiele nichts schaden.<br />
ach ja noch etwas, wäre es denn richtig so ?</p>
<pre><code class="language-cpp">char vorname [0] = '0';
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1878296</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1878296</guid><dc:creator><![CDATA[pava]]></dc:creator><pubDate>Tue, 06 Apr 2010 12:45:20 GMT</pubDate></item><item><title><![CDATA[Reply to class on Tue, 06 Apr 2010 13:18:02 GMT]]></title><description><![CDATA[<p>pava schrieb:</p>
<blockquote>
<p>vielen dank an alle die mir geholfen haben <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="👍"
    /> , ich bin jetzt dank eure hilfe einbischen schlauer geworden, und weiss teilweise was für Fehler ich gemacht habe. Den Rest muss ich wie ihr das gesagt habt in meinem Buch noch lesen. Ich habe das Buch go to c++. ist das Buch ok? ich finde manchmal könnten ein paar mehr Beispiele nichts schaden.<br />
ach ja noch etwas, wäre es denn richtig so ?</p>
<pre><code class="language-cpp">char vorname [0] = '0';
</code></pre>
</blockquote>
<p>Wenn du aus dem String einen Leerstring machen willst, muss es so aussehen:</p>
<pre><code class="language-cpp">char vorname [0] = 0;
</code></pre>
<p>Das Stringende wird von einer binären Null signalisiert, nicht von dem Zeichen '0' (dann dürfte in deinen Strings ja nie '0' vorkommen, was dich leicht einschränken würde <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/1878313</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1878313</guid><dc:creator><![CDATA[_matze]]></dc:creator><pubDate>Tue, 06 Apr 2010 13:18:02 GMT</pubDate></item><item><title><![CDATA[Reply to class on Tue, 06 Apr 2010 14:02:09 GMT]]></title><description><![CDATA[<p>pava schrieb:</p>
<blockquote>
<p>Den Rest muss ich wie ihr das gesagt habt in meinem Buch noch lesen. Ich habe das Buch go to c++. ist das Buch ok?</p>
</blockquote>
<p>Das kenne ich nicht. Es <em>klingt</em> vom Titel her aber nicht so vielversprechend.</p>
<p>pava schrieb:</p>
<blockquote>
<p>ich finde manchmal könnten ein paar mehr Beispiele nichts schaden.<br />
ach ja noch etwas, wäre es denn richtig so ?</p>
<pre><code class="language-cpp">char vorname [0] = '0';
</code></pre>
</blockquote>
<p>Nein. Das sollte gar nicht kompilieren; denn Du definierst hier ein Array mit <strong>0</strong> Elementen. Und mit &quot;definieren&quot; meinte ich das, was vor dem Gleich steht. Das ab dem Gleich ist die <em>Initialisierung</em>, die auch noch falsch gewesen wäre.</p>
<p><a href="http://codepad.org/DhOk6U5E" rel="nofollow">Beispiel</a>, welches Du sehen willst, aber wegen dem char-Array eigentlich etwas frickelig ist:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;cstring&gt;

const int name_feld_laenge = 30;

class person
{
  char name_[name_feld_laenge];
public:
  person() { name_[0] = '\0'; }
  explicit person(const char* zeiger);
  const char* name() const { return &amp;name_[0]; }
};

person::person(const char* zeiger)
{
  std::strncpy(&amp;name_[0],zeiger,name_feld_laenge);
  // strncpy garantiert aber keine Nullterminierung im Ziel
  // Wir müssen daher Hand anlegen:
  name_[name_feld_laenge-1] = '\0';
}

int main() {
  person liste[3] = {
    person(&quot;Heinz ist nett und dieser String ist zu lang&quot;),
    person(&quot;Uwe&quot;)
  };
  std::cout &lt;&lt; liste[0].name() &lt;&lt; '\n';
  std::cout &lt;&lt; liste[1].name() &lt;&lt; '\n';
}
</code></pre>
<p>wobei es <a href="http://codepad.org/DLmUT12C" rel="nofollow">dies</a> hier eigentlich auch getan hätte:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;string&gt;

struct person
{
  std::string name;
};

int main() {
  person liste[3] = {
    {&quot;Heinz ist nett und dieser String ist nicht zu lang&quot;},
    {&quot;Uwe&quot;}
  };
  std::cout &lt;&lt; liste[0].name &lt;&lt; '\n';
  std::cout &lt;&lt; liste[1].name &lt;&lt; '\n';
}
</code></pre>
<p>Nur das will Dein Prof nicht sehen, weil er entweder denkt, es sei besser C vor C++ zu lernen <em>oder</em> weil er nicht weiß, wie &quot;schönes&quot; C++ aussehen kann.</p>
<p>Die Sachen aus der Standardbibliothek (std::string, std::strncpy, etc) kann man zB <a href="http://www.cplusplus.com/reference/" rel="nofollow">hier</a> nachgucken.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1878346</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1878346</guid><dc:creator><![CDATA[krümelkacker]]></dc:creator><pubDate>Tue, 06 Apr 2010 14:02:09 GMT</pubDate></item><item><title><![CDATA[Reply to class on Tue, 06 Apr 2010 21:56:51 GMT]]></title><description><![CDATA[<p>so dank eure hilfe habe ich mein code jetzt einbischen verbessert, ich konnte leider nicht alles umsetzen bzw ändern was ihr mir empfohlen habt zb mit [30] muss weg usw.. weil dann bekam ich fehlermeldungen.<br />
so kann man das Programm fehlerfrei kompilieren, aber ich habe ein Problem mit der Ausgabe.<br />
PS: Schauen Sie die main funktion bitte an da habe ich das problem.</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;cstring&gt;
using namespace std;

class teilnehmer
{
private :
    char vorname [30] ;
    char nachname [30];
    int matrikelnummer;
public:
    teilnehmer ();
    teilnehmer (char v[30], int m, char n[30]);
    void print ();
};

teilnehmer :: teilnehmer ()
{
vorname [0] = 0;
nachname [0] = '-';
int matrikelnummer = 0;
}

teilnehmer :: teilnehmer(char v [30], int m, char n[30])
{
vorname [30] = v [30];
matrikelnummer = m;
nachname [30] = n [30];

}

void teilnehmer :: print ()
{

    if (nachname [0]  != '-')
    {
        cout &lt;&lt; &quot;Der Nachname ist : &quot; &lt;&lt; nachname  &lt;&lt; endl;
    }
}

int main ()
{
	teilnehmer tabelle[16] = {
    teilnehmer  (&quot;Kevin&quot;, 123456, &quot;Mueller&quot;),

    teilnehmer  (&quot;Franz&quot;, 112233, &quot;Schuhmacher&quot;),

    teilnehmer  (&quot;Lisa&quot;, 102356  , &quot;Fritz&quot;),

    teilnehmer  (&quot;Manfred&quot;, 258963, &quot;Schmitt&quot;),
	};
int i;
for (i=0 ; i&lt;16 ; i++)
{
	/*das Programm kann man Fehlerfrei kompilieren wenn 
     man die cout hier unten nicht benutz, aber ich brauche 
	 die ausgabe, kann mir jemand bitte zeigen wie die ausgabe richtig wäre?*/
	cout &lt;&lt; tabelle [i].vorname &lt;&lt; endl;
	cout &lt;&lt; tabelle[i].matrikelnummer &lt;&lt; endl;
}
    return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1878548</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1878548</guid><dc:creator><![CDATA[pava]]></dc:creator><pubDate>Tue, 06 Apr 2010 21:56:51 GMT</pubDate></item><item><title><![CDATA[Reply to class on Tue, 06 Apr 2010 22:14:14 GMT]]></title><description><![CDATA[<p>Du kannst nicht einfach auf die privaten Attribute einer Klasse zugreifen. Private ist ja gerade genau dafür da! Du musst irgendeine Schnittstelle im public-Bereich deiner Teilnehmerklasse definieren über die du die gewünschten Ausgaben machen kannst. Die übliche Vorgehensweise wäre die Überladung des Operators&lt;&lt;. Das ist aber nicht unbedingt etwas für deinen Kenntnisstand. Die billige Alternative wäre so etwas wie deine print-Funktion, aber stattdessen mit den von dir gewünschten Ausgaben. Oder noch billiger so etwas wie get_matrikelnummer(), dass dann einfach die Matrikelnummer zurückgibt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1878556</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1878556</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Tue, 06 Apr 2010 22:14:14 GMT</pubDate></item><item><title><![CDATA[Reply to class on Wed, 07 Apr 2010 02:56:44 GMT]]></title><description><![CDATA[<p>Da sind noch immer viele Macken drin, die ich beim ersten Mal schon kritisiert habe. Du solltest das, was gesagt wurde, ernst nehmen.</p>
<p>pava schrieb:</p>
<blockquote>
<pre><code class="language-cpp">teilnehmer (char v[30], int m, char n[30]);
</code></pre>
</blockquote>
<p>müsste tatsächlich heißen:</p>
<pre><code class="language-cpp">teilnehmer (const char v[30], int m, const char n[30]);
</code></pre>
<p>wobei die 30 eigentlich überflüssig ist. Man könnte auch const char[] dafür schreiben -- kommt auf dasselbe raus. v und n sind nuneinmal Zeiger hier und keine Arrays -- wegen der angesprochenen Typtransformation.</p>
<p>pava schrieb:</p>
<blockquote>
<pre><code class="language-cpp">void print ();
</code></pre>
</blockquote>
<p>Hier fehlt ein const am Ende. Sollte so aussehen:</p>
<pre><code class="language-cpp">void print () const;
</code></pre>
<p>(Die Funktion print muss/will den Zustand des Objekts <em>nicht</em> ändern.)</p>
<p>pava schrieb:</p>
<blockquote>
<pre><code class="language-cpp">teilnehmer :: teilnehmer(char v [30], int m, char n[30])
{
vorname [30] = v [30];
matrikelnummer = m;
nachname [30] = n [30];
}
</code></pre>
</blockquote>
<p>Man hat Dir schon erklärt, dass das hier sinnfrei ist, was Du machst. Ich habe Dir sogar schon gezeigt, wie man die C-Strings hier richtig kopieren würde. Das [30] hier ist immer noch Nonsense. Klar, es lässt Dich Dein Programm kompilieren, aber es ergibt keinen Sinn. Es macht nicht das, was Du willst. Du willst eine <em>Kette von Zeichen</em> kopieren, maximal 30 (einschließlich Nullterminierung). Was Du machst, ist das 31. Zeichen kopieren, welches im Falle von vorname und nachname nicht existiert, weil Du ja nur 30 Zeichen hast und welches im Falle von v und n auch nicht existieren muss. Du popelst also in einem Speicher rum, der Dir nicht gehört und von dem Du nicht weißt, dass es ihn überhaupt gibt. --&gt; undefiniertes Verhalten</p>
<p>pava schrieb:</p>
<blockquote>
<pre><code class="language-cpp">void teilnehmer :: print ()
</code></pre>
</blockquote>
<p>hier kommt auch noch ein const an's Ende.</p>
<p>pava schrieb:</p>
<blockquote>
<pre><code class="language-cpp">for (i=0 ; i&lt;16 ; i++)
{
    /* das Programm kann man Fehlerfrei kompilieren wenn 
       man die cout hier unten nicht benutz, aber ich brauche 
       die ausgabe, kann mir jemand bitte zeigen wie die ausgabe
       richtig wäre? */
    cout &lt;&lt; tabelle .vorname &lt;&lt; endl;
    cout &lt;&lt; tabelle[i].matrikelnummer &lt;&lt; endl;
}
</code></pre>
</blockquote>
<ul>
<li></li>
</ul>
<p>Dass man es fehlerfrei kompilieren kann, heißt nicht, dass der Rest in Ordnung ist. Natürlich kannst Du auf [i]private* Elemente nicht ohne weiteres zugreifen. Das ist ja der Witz von <em>private</em>. Wozu hast Du die print-Funktion? Außerdem solltest Du den Konstanten einen Namen geben, so dass Du sie ändern kannst, indem Du Dein Programm nur <em>an einer Stelle</em> ändern musst.</p>
<pre><code class="language-cpp">const int max_teiln = 16; // &lt;-- eine Stelle. Diese 16 taucht sonst
                          // nirgens mehr auf, nur der Name max_teiln
teilnehmer tabelle[max_teiln] = {
   u.s.w.
};
for (int i=0; i&lt;max_teiln; ++i) {
   tabelle[i].print();
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1878582</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1878582</guid><dc:creator><![CDATA[krümelkacker]]></dc:creator><pubDate>Wed, 07 Apr 2010 02:56:44 GMT</pubDate></item><item><title><![CDATA[Reply to class on Wed, 07 Apr 2010 08:53:13 GMT]]></title><description><![CDATA[<p>hallo, danke nochmal für alle die mir geantwortet haben.</p>
<p>@ Krümelkacker:<br />
sorry ich wollte nicht das es so rüber kommt. Natürlich habe ich eure Ratschläge ernst genommen, aber ich habe mich halt gefreut als ich das programm Fehlerfrei kompilierte, aber jetzt weiss ich dass das nicht viel heisst.</p>
<p>der code musste also so aussehen, wenn ich dich dieses mal richtig verstanden habe:</p>
<pre><code class="language-cpp">teilnehmer :: teilnehmer(const char v [], int m, const char n[])
{
vorname [0]  = v [0]  ;
matrikelnummer = m;
nachname [0] = n [0] ;
</code></pre>
<p>somit greife ich jetzt auf das erste Element zu. richtig?</p>
<p>Gruß pava.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1878672</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1878672</guid><dc:creator><![CDATA[pava]]></dc:creator><pubDate>Wed, 07 Apr 2010 08:53:13 GMT</pubDate></item><item><title><![CDATA[Reply to class on Wed, 07 Apr 2010 09:09:37 GMT]]></title><description><![CDATA[<p>pava schrieb:</p>
<blockquote>
<pre><code class="language-cpp">teilnehmer :: teilnehmer(const char v [], int m, const char n[])
{
vorname [0]  = v [0]  ;
matrikelnummer = m;
nachname [0] = n [0] ;
</code></pre>
<p>somit greife ich jetzt auf das erste Element zu. richtig?</p>
</blockquote>
<p>Genau. Und dahinter steht immer noch Müll drinnen...<br />
Ein Array besteht nämlich meistens aus mehr als nur einem Element und du willst doch sicherlich alle Elemente kopieren. Und auch dazu hat dir krümelkacker schon die Lösung präsentiert: std::strncpy.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1878688</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1878688</guid><dc:creator><![CDATA[l&#x27;abra d&#x27;or]]></dc:creator><pubDate>Wed, 07 Apr 2010 09:09:37 GMT</pubDate></item><item><title><![CDATA[Reply to class on Fri, 09 Apr 2010 05:11:35 GMT]]></title><description><![CDATA[<p>hallo,<br />
nach kurzer Besprechung mit dem Professor ist es endlich soweit, ich habe es geschafft, und mein Programm sieht jetzt so aus :(Endphase) <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>
<pre><code class="language-cpp">#include &lt;iostream&gt; 
#include &lt;string&gt; 
using namespace std; 

class teilnehmer 
{ 
private : 
    string vorname ; 
   string nachname ; 
    int matrikelnummer; 
public: 
    teilnehmer (); 
    teilnehmer (string v, int m, string n); 
    void print (); 
}; 

teilnehmer :: teilnehmer () 
{ 
vorname  = &quot;&quot;; 
nachname  = &quot;-&quot;; 
matrikelnummer = 0; 
} 

teilnehmer :: teilnehmer(string v, int m, string n) 
{ 
vorname  = v ; 
matrikelnummer = m; 
nachname  = n ; 

} 

void teilnehmer :: print () 
{ 
	if (nachname   != &quot;-&quot;) 
    {
		cout &lt;&lt; &quot;Der Vorname : &quot; &lt;&lt; vorname &lt;&lt; &quot; und die Matrikelnummer ist : &quot;&lt;&lt; matrikelnummer &lt;&lt; endl;
		cout &lt;&lt;	&quot;Der Nachname ist : &quot; &lt;&lt; nachname  &lt;&lt;endl;      
    } 
} 

int main () 
{ 
    teilnehmer tabelle[16] = { 
    teilnehmer  (&quot;Kevin&quot;, 123456, &quot;Mueller&quot;), 

    teilnehmer  (&quot;Franz&quot;, 112233, &quot;Schuhmacher&quot;), 

    teilnehmer  (&quot;Lisa&quot;, 102356  , &quot;Fritz&quot;), 

    teilnehmer  (&quot;Manfred&quot;, 258963, &quot;Schmitt&quot;), 
    }; 
int i; 
for (i=0 ; i&lt;16 ; i++) 
{ 
    tabelle[i].print();
}; 
    return 0; 
}
</code></pre>
<p>so ich glaube jetzt gibts nichts mehr zu meckern oder? ausser bei</p>
<pre><code class="language-cpp">const int max_teilnehmer = 16;
</code></pre>
<p>danke schön nochmal und bis zum nächsten Programm.</p>
<p>MfG Pava</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1879809</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1879809</guid><dc:creator><![CDATA[pava]]></dc:creator><pubDate>Fri, 09 Apr 2010 05:11:35 GMT</pubDate></item><item><title><![CDATA[Reply to class on Fri, 09 Apr 2010 10:18:15 GMT]]></title><description><![CDATA[<p>Da gibts noch zwei Sachen, die mir gerade so aufgefallen sind:</p>
<ul>
<li>Formatierung - Formatier deinen Code anständig! Das ist schreklick zu lesen!</li>
<li>Nutze Initialisierungslisten</li>
</ul>
]]></description><link>https://www.c-plusplus.net/forum/post/1879920</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1879920</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Fri, 09 Apr 2010 10:18:15 GMT</pubDate></item><item><title><![CDATA[Reply to class on Fri, 09 Apr 2010 11:26:01 GMT]]></title><description><![CDATA[<p>drakon schrieb:</p>
<blockquote>
<p>Da gibts noch zwei Sachen, die mir gerade so aufgefallen sind:</p>
<ul>
<li>Formatierung - Formatier deinen Code anständig! Das ist schreklick zu lesen!</li>
<li>Nutze Initialisierungslisten</li>
</ul>
</blockquote>
<p>Sry ich bin Anfänger, wie meinst du das mit der Formatierung?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1879960</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1879960</guid><dc:creator><![CDATA[pava]]></dc:creator><pubDate>Fri, 09 Apr 2010 11:26:01 GMT</pubDate></item><item><title><![CDATA[Reply to class on Fri, 09 Apr 2010 11:31:36 GMT]]></title><description><![CDATA[<p>An gewissen Stellen ist deine Einrückung ziemlich unübersichtlich.</p>
<p>Wenn ein neuer Block mit { beginnt, rückst du eine Ebene mehr ein, bei } eine weniger. Dadurch sieht der Code schon viel lesbarer aus.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1879970</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1879970</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Fri, 09 Apr 2010 11:31:36 GMT</pubDate></item><item><title><![CDATA[Reply to class on Fri, 09 Apr 2010 11:32:51 GMT]]></title><description><![CDATA[<p>pava schrieb:</p>
<blockquote>
<p>Sry ich bin Anfänger, wie meinst du das mit der Formatierung?</p>
</blockquote>
<p>Einrückung, diese auch konsistent durchziehen.<br />
Die &quot;;&quot; ebenso konsistent setzen.<br />
Keine unnötigen Leerzeilen und Leerzeichen.<br />
USW.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1879973</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1879973</guid><dc:creator><![CDATA[l&#x27;abra d&#x27;or]]></dc:creator><pubDate>Fri, 09 Apr 2010 11:32:51 GMT</pubDate></item><item><title><![CDATA[Reply to class on Fri, 09 Apr 2010 13:16:05 GMT]]></title><description><![CDATA[<p><a href="http://de.wikipedia.org/wiki/Einr%C3%BCckungsstil" rel="nofollow">http://de.wikipedia.org/wiki/Einrückungsstil</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1880064</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1880064</guid><dc:creator><![CDATA[_matze]]></dc:creator><pubDate>Fri, 09 Apr 2010 13:16:05 GMT</pubDate></item></channel></rss>