<?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[C++ Schiffe Versenken]]></title><description><![CDATA[<p>Hi,</p>
<p>ich hab einfach so aus Spaß an der Freude Schiffe Versenken im C++ Konsolenfenster programmiert und wollte fragen, ob jemand vielleicht wenn er Zeit hat mal über den Code drüberschaun könnte, und mir sagen könnte, was ich da noch besser bzw. kürzer oder anders machen sollte, da ich noch ein ziemlicher Anfänger bin.</p>
<p>Hab den Code auf pastebin gepostet, da der zu lang fürs Forum wäre.<br />
<a href="http://pastebin.com/uHWqBe8B" rel="nofollow">http://pastebin.com/uHWqBe8B</a></p>
<p>Das Programm funktionert auch soweit, außer das mit den Schiffe anzeigen lassen, wenn man verloren hat.<br />
Und das Programm kann bis jetzt auch nur Schiffe, die ein Feld groß sind.</p>
<p>LG</p>
<p>jkhsjdhjs</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/321722/c-schiffe-versenken</link><generator>RSS for Node</generator><lastBuildDate>Sat, 18 Jul 2026 08:07:53 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/321722.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 22 Nov 2013 14:20:38 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to C++ Schiffe Versenken on Fri, 22 Nov 2013 14:20:38 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>ich hab einfach so aus Spaß an der Freude Schiffe Versenken im C++ Konsolenfenster programmiert und wollte fragen, ob jemand vielleicht wenn er Zeit hat mal über den Code drüberschaun könnte, und mir sagen könnte, was ich da noch besser bzw. kürzer oder anders machen sollte, da ich noch ein ziemlicher Anfänger bin.</p>
<p>Hab den Code auf pastebin gepostet, da der zu lang fürs Forum wäre.<br />
<a href="http://pastebin.com/uHWqBe8B" rel="nofollow">http://pastebin.com/uHWqBe8B</a></p>
<p>Das Programm funktionert auch soweit, außer das mit den Schiffe anzeigen lassen, wenn man verloren hat.<br />
Und das Programm kann bis jetzt auch nur Schiffe, die ein Feld groß sind.</p>
<p>LG</p>
<p>jkhsjdhjs</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2367043</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2367043</guid><dc:creator><![CDATA[jkhsjdhjs]]></dc:creator><pubDate>Fri, 22 Nov 2013 14:20:38 GMT</pubDate></item><item><title><![CDATA[Reply to C++ Schiffe Versenken on Fri, 22 Nov 2013 14:24:21 GMT]]></title><description><![CDATA[<p>Teil den Code in viel mehr Funktionen auf.<br />
Teil den Code auf verschiedene Dateien auf.</p>
<p>Globale Variablen sind designtechnisch schlecht.<br />
Rohe Arrays wie du sie ntuzt sind suboptimal, nimm std::array oder std::vector.<br />
Teil deine Funktionalität auf in Logik und Anzeige, du hast beides verschmolzen.</p>
<p>Der nächste Schritt wäre Objektorientierung.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2367045</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2367045</guid><dc:creator><![CDATA[Skym0sh0]]></dc:creator><pubDate>Fri, 22 Nov 2013 14:24:21 GMT</pubDate></item><item><title><![CDATA[Reply to C++ Schiffe Versenken on Fri, 22 Nov 2013 14:27:57 GMT]]></title><description><![CDATA[<p>Ok, Danke für die Antwort.<br />
Wie kann ich denn den Code auf mehrere Dateien aufteilen?<br />
Habe sowas noch nie gemacht.</p>
<p>Ja, das Globale Variablen schlecht sind, weiß ich, aber in den Fällen fand ich das einfacher. Es sind ja auch nicht alle Variablen global.</p>
<p>Was ist denn der Unterschied zwischen std::array oder std::vector zwischen den normalen arrays wie ich sie nehme?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2367048</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2367048</guid><dc:creator><![CDATA[jkhsjdhjs]]></dc:creator><pubDate>Fri, 22 Nov 2013 14:27:57 GMT</pubDate></item><item><title><![CDATA[Reply to C++ Schiffe Versenken on Fri, 22 Nov 2013 14:30:56 GMT]]></title><description><![CDATA[<p>jkhsjdhjs schrieb:</p>
<blockquote>
<p>Was ist denn der Unterschied zwischen std::array oder std::vector zwischen den normalen arrays wie ich sie nehme?</p>
</blockquote>
<p>std::vector wächst dynamisch, std::array hat diese dämliche Array-to-Pointer-Decay nicht drin und ist somit einfacher zu handeln (übergib mal ein rohes Array by Value an eine Funktion).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2367051</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2367051</guid><dc:creator><![CDATA[Nathan]]></dc:creator><pubDate>Fri, 22 Nov 2013 14:30:56 GMT</pubDate></item><item><title><![CDATA[Reply to C++ Schiffe Versenken on Fri, 22 Nov 2013 14:40:44 GMT]]></title><description><![CDATA[<p>zeile 5: kenne den header net<br />
zeile 7: nicht standardkonform -&gt; &lt;clocale&gt;<br />
zeile 8: nicht standardkonform -&gt; &lt;ctime&gt;<br />
zeile 9: achtung, plattform-anhängig<br />
zeile 11: kenne den header net<br />
zeile 16 - 31: hätte man viel schöner mit enumatoren lösen können<br />
zeile 33 - 36: da lässt sich sicher vieles in klassen kapseln und muss auch nicht global sein<br />
zeile 38 - 41: gibt effizientere methoden, z.b. &quot;vec(2); vec[] = ...&quot;, dann musst du nicht unnötig alloziieren und rumkopieren obwohl du die grösse eh kennst<br />
zeile 45 - 47: -&gt; std::pair&lt;int, int&gt;<br />
zeile 49 - 57: sehr gut dass du das in eine funkion getan hast <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="👍"
    /> kann zum code selbst aber nix sagen weil ich ka habe...<br />
zeile 59 - 61: wäre ein wenig schöner wenn du das alles in eine klasse als static member oder in einen namespace packen würdest. (also auch die farben dann als enumatoren oder als statische konstante member)<br />
zeile 63 - 110: da blicke ich nicht wirklich durch aber ich sehe schon dass da gewisse dinge redunant sind, die kann man bestimmt mit besseren strukturen vermeiden. allgemein sagt man auch dass compiler switches besser optimieren können als solche if-ketten, ist aber für dich hier kein argument, ich weiss...<br />
zeile 112 - 255: riiiiesen funktion, hätte man auch einfach so schreiben können:</p>
<pre><code>Pair Koordinatenverarbeitung(int x, int y) {
        Pair Rückgabewert;
		if(std::tolower(x) &gt;= 'a' &amp;&amp; std::tolower(x) &lt;= 'q')
			Rückgabewert.Eins = 20 + (std::tolower(x) - 'a') * 10;
		else
			Rückgabewert.Eins = 0;
        if(y &gt;= '1' &amp;&amp; y &lt;= '8')
			Rückgabewert.Zwei = 10 + (y - '1') * 6;
		else
			Rückgabewert.Zwei = 0;
        return Rückgabewert;
}
</code></pre>
<p>so bitte, 12 zeilen. du musst üben, muster zu erkennen damit du algorithmen schreiben kannst statt tabellen zu nutzen<br />
zeile 264 - 276: statt das fünf mal zu schreiben hättest du doch eine for-schleife machen können:</p>
<pre><code>Farbe(farbe);
        for(int i = -2; i &lt;= 2; i++)
        {
                gotoxy(x - 4, y + i);
                cout&lt;&lt;&quot;XXXXXXXXX&quot;;
        }
</code></pre>
<p>ist wieder sowas was ich beim letzten punkt angesprochen habe</p>
<p>an dieser stelle höre ich mal auf, mit den tipps die ich dir gegeben habe dürftest du genug zu tun haben wenn du sie auf dein ganzes programm anwendest.</p>
<p>mfg</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2367054</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2367054</guid><dc:creator><![CDATA[asdfsdf]]></dc:creator><pubDate>Fri, 22 Nov 2013 14:40:44 GMT</pubDate></item><item><title><![CDATA[Reply to C++ Schiffe Versenken on Fri, 22 Nov 2013 14:48:00 GMT]]></title><description><![CDATA[<p>Ok, Danke! Hab jetzt mal was gegooglet und komme jedoch noch nicht so ganz damit klar. Könnte mir vielleicht jemand mal anhand von:</p>
<pre><code>int Schiffe[4][2]
</code></pre>
<p>zeigen, wie das geht?</p>
<p>Ich käme ja auf hier das:</p>
<pre><code>array&lt;int, 4, 2&gt; Schiffe;
</code></pre>
<p>Bekomme aber Fehler. Gehen bei std::array zwei Dimensionen überhaupt?</p>
<p>Und @asdfsdf:</p>
<p>Danke, dass du dir den Code genauer angeschaut hast <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="👍"
    /> . Werde deine Ratschläge befolgen!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2367057</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2367057</guid><dc:creator><![CDATA[jkhsjdhjs]]></dc:creator><pubDate>Fri, 22 Nov 2013 14:48:00 GMT</pubDate></item><item><title><![CDATA[Reply to C++ Schiffe Versenken on Fri, 22 Nov 2013 14:51:32 GMT]]></title><description><![CDATA[<p>jkhsjdhjs schrieb:</p>
<blockquote>
<p>Gehen bei std::array zwei Dimensionen überhaupt?</p>
</blockquote>
<p>Das wäre dann ein Array von Arrays. Das hast du bei int[4][2] auch, aber du merkst es vielleicht nicht.</p>
<pre><code>array&lt;array&lt;int, 2&gt;, 4&gt;
</code></pre>
<p>Ein typedef bietet sich an.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2367058</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2367058</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Fri, 22 Nov 2013 14:51:32 GMT</pubDate></item><item><title><![CDATA[Reply to C++ Schiffe Versenken on Fri, 22 Nov 2013 14:54:55 GMT]]></title><description><![CDATA[<p>Mach dich auf jedenfall drauf gefasst, dass hier viele Dinge noch genannt werden, die du noch nie gehört hast. Auch wird dir dein Code früher oder später komplett auseinander genommen werden. Dem ein oder anderen geht das persönlich sehr nahe, was es eigentlich nicht braucht.</p>
<p>Denn:</p>
<p>die 10-Programmierer Gebote schrieb:</p>
<blockquote>
<p>Understand and accept that you will make mistakes. The point is to find them early, before they make it into production. Fortunately, except for the few of us developing rocket guidance software at JPL, mistakes are rarely fatal in our industry, so we can, and should, learn, laugh, and move on.</p>
<p>You are not your code. Remember that the entire point of a review is to find problems, and problems will be found. Don't take it personally when one is uncovered.</p>
<p>No matter how much &quot;karate&quot; you know, someone else will always know more. Such an individual can teach you some new moves if you ask. Seek and accept input from others, especially when you think it's not needed.</p>
<p>Don't rewrite code without consultation. There's a fine line between &quot;fixing code&quot; and &quot;rewriting code.&quot; Know the difference, and pursue stylistic changes within the framework of a code review, not as a lone enforcer.</p>
<p>Treat people who know less than you with respect, deference, and patience. Nontechnical people who deal with developers on a regular basis almost universally hold the opinion that we are prima donnas at best and crybabies at worst. Don't reinforce this stereotype with anger and impatience.</p>
<p>The only constant in the world is change. Be open to it and accept it with a smile. Look at each change to your requirements, platform, or tool as a new challenge, not as some serious inconvenience to be fought.</p>
<p>The only true authority stems from knowledge, not from position. Knowledge engenders authority, and authority engenders respect – so if you want respect in an egoless environment, cultivate knowledge.</p>
<p>Fight for what you believe, but gracefully accept defeat. Understand that sometimes your ideas will be overruled. Even if you do turn out to be right, don't take revenge or say, &quot;I told you so&quot; more than a few times at most, and don't make your dearly departed idea a martyr or rallying cry.</p>
<p>Don't be &quot;the guy in the room.&quot; Don't be the guy coding in the dark office emerging only to buy cola. The guy in the room is out of touch, out of sight, and out of control and has no place in an open, collaborative environment.</p>
<p>Critique code instead of people – be kind to the coder, not to the code. As much as possible, make all of your comments positive and oriented to improving the code. Relate comments to local standards, program specs, increased performance, etc.</p>
</blockquote>
]]></description><link>https://www.c-plusplus.net/forum/post/2367060</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2367060</guid><dc:creator><![CDATA[Skym0sh0]]></dc:creator><pubDate>Fri, 22 Nov 2013 14:54:55 GMT</pubDate></item><item><title><![CDATA[Reply to C++ Schiffe Versenken on Fri, 22 Nov 2013 14:57:03 GMT]]></title><description><![CDATA[<p>nein das würde man so machen:</p>
<pre><code>std::array&lt;int, 4 * 2&gt; Schiffe;
</code></pre>
<p>und weil es mühsam ist, jedes mal wenn man darauf zugreifen möchte auch noch die indices zu berechnen, kann man das auch kapseln:</p>
<pre><code>template&lt;class T, ::std::size_t Width_, ::std::size_t Height_&gt;
class Field
{
public:
	typedef T ValueType;
	enum
	{
		Width = Width_,
		Height = Heigth_
	};
private:
	::std::array&lt;ValueType, Width * Height&gt; Underlying;
	::std::size_t TransformIndex(::std::size_t IndexX, ::std::size_t IndexY) const
	{
		return IndexX + IndexY * this-&gt;Width;
	}
public:
	ValueType const&amp; operator() (::std::size_t IndexX, ::std::size_t IndexY) const
	{
		return this-&gt;Underlying[this-&gt;TransformIndex()];
	}
	ValueType&amp; operator() (::std::size_t IndexX, ::std::size_t IndexY)
	{
		return this-&gt;Underlying[this-&gt;TransformIndex()];
	}
};
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2367061</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2367061</guid><dc:creator><![CDATA[asdfsf]]></dc:creator><pubDate>Fri, 22 Nov 2013 14:57:03 GMT</pubDate></item><item><title><![CDATA[Reply to C++ Schiffe Versenken on Fri, 22 Nov 2013 14:58:48 GMT]]></title><description><![CDATA[<p>also das nein ging an jkhsjdhjs, nicht an dich seppj...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2367063</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2367063</guid><dc:creator><![CDATA[asdfsf]]></dc:creator><pubDate>Fri, 22 Nov 2013 14:58:48 GMT</pubDate></item><item><title><![CDATA[Reply to C++ Schiffe Versenken on Fri, 22 Nov 2013 15:01:12 GMT]]></title><description><![CDATA[<p>ups, die funktionsparameter bei den &quot;TransformIndex&quot;-aufrufen vergessen.</p>
<pre><code>ValueType const&amp; operator() (::std::size_t IndexX, ::std::size_t IndexY) const 
    { 
        return this-&gt;Underlying[this-&gt;TransformIndex(IndexX, IndexY)]; 
    } 
    ValueType&amp; operator() (::std::size_t IndexX, ::std::size_t IndexY) 
    { 
        return this-&gt;Underlying[this-&gt;TransformIndex(IndexX, IndexY)]; 
    }
</code></pre>
<p>kann ein mod bitte meine drei posts zu einem zusammenheften? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /><br />
jaja ich registrier mich irgendwann mal...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2367064</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2367064</guid><dc:creator><![CDATA[asdfsf]]></dc:creator><pubDate>Fri, 22 Nov 2013 15:01:12 GMT</pubDate></item><item><title><![CDATA[Reply to C++ Schiffe Versenken on Fri, 22 Nov 2013 15:10:42 GMT]]></title><description><![CDATA[<p>@asdfsf:</p>
<p>Okay...<br />
Ich hab echt nicht die geringste Ahnung was du da geschrieben hast, hab zwar schonmal von Klassen gehört, weiß aber nicht was das ist. Könntest du vllt mal mit Kommentaren versehen, was du geschrieben hast?<br />
Und was ist das Ziel von dem was du da geschrieben hast?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2367073</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2367073</guid><dc:creator><![CDATA[jkhsjdhjs]]></dc:creator><pubDate>Fri, 22 Nov 2013 15:10:42 GMT</pubDate></item><item><title><![CDATA[Reply to C++ Schiffe Versenken on Fri, 22 Nov 2013 15:14:30 GMT]]></title><description><![CDATA[<p>Ich denke, das was asdfsf vorschlägt, ist hier wohl etwas zu hoch für den vorhandenen Kenntnisstand. Ich sehe auch nicht, wozu das hier überhaupt nötig sein sollte, denn es hat keinen Vorteil gegenüber dem verschachtelten Array (siehe mein vorheriger Beitrag), es ist bloß viel umständlicher. Daher würde ich das verschachtelte Array nehmen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2367074</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2367074</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Fri, 22 Nov 2013 15:14:30 GMT</pubDate></item><item><title><![CDATA[Reply to C++ Schiffe Versenken on Fri, 22 Nov 2013 16:03:13 GMT]]></title><description><![CDATA[<p>Ok, dann werde ich die nehmen. Danke <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 />
Würde ich das hier:</p>
<pre><code>#define SCHWARZ			0x0000
#define DUNKELBLAU		0x0001
#define DUNKELGRÜN		0x0002
#define DUNKELTÜRKIS	0x0003
#define DUNKELROT		0x0004
#define LILA			0x0005
#define GOLD			0x0006
#define GRAU			0x0007
#define DUNKELGRAU		0x0008
#define BLAU			0x0009
#define GRÜN			0x000a
#define TÜRKIS			0x000b
#define ROT				0x000c
#define PINK			0x000d
#define GELB			0x000e
#define WEIß			0x000f
</code></pre>
<p>dann so schreiben?:</p>
<pre><code>enum Farben {
	SCHWARZ,
	DUNKELBLAU,
	DUNKELGRÜN,
	DUNKELTÜRKIS,
	DUNKELROT,
	LILA,
	GOLD,
	GRAU,
	DUNKELGRAU,
	BLAU,
	GRÜN,
	TÜRKIS,
	ROT,
	PINK,
	GELB,
	WEIß
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2367081</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2367081</guid><dc:creator><![CDATA[jkhsjdhjs]]></dc:creator><pubDate>Fri, 22 Nov 2013 16:03:13 GMT</pubDate></item><item><title><![CDATA[Reply to C++ Schiffe Versenken on Fri, 22 Nov 2013 15:28:20 GMT]]></title><description><![CDATA[<p>Bezüglich Farbenenum: Ist jedenfalls ein Fortschritt gegenüber Makros. Allgemein würde ich Umlaute weglassen, da es auch viele Compiler gibt, die streng auf ASCII für Bezeichner bestehen. Und wenn man schon dabei ist, würde ich auf Englisch programmieren, sofern es keine große Mühe ist. Ist sicherlich gut, sich frühzeitig da dran zu gewöhnen, früher oder später wird man ohnehin auf englisch programmieren.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2367084</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2367084</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Fri, 22 Nov 2013 15:28:20 GMT</pubDate></item><item><title><![CDATA[Reply to C++ Schiffe Versenken on Fri, 22 Nov 2013 15:37:45 GMT]]></title><description><![CDATA[<p>Ja, ich wollte eigentlich auf Englisch programmieren, aber da ich die Ausgaben auch auf Deutsch habe, dachte ich mir mach ich doch alles auf Deutsch. Aber ok, werde es mir merken!</p>
<p>EDIT: Und wie würde ich die Farben dann verwenden? Weil denen wurde doch jetzt kein Wert zugewiesen, oder?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2367090</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2367090</guid><dc:creator><![CDATA[jkhsjdhjs]]></dc:creator><pubDate>Fri, 22 Nov 2013 15:37:45 GMT</pubDate></item><item><title><![CDATA[Reply to C++ Schiffe Versenken on Fri, 22 Nov 2013 15:51:56 GMT]]></title><description><![CDATA[<p>jkhsjdhjs schrieb:</p>
<blockquote>
<p>EDIT: Und wie würde ich die Farben dann verwenden? Weil denen wurde doch jetzt kein Wert zugewiesen, oder?</p>
</blockquote>
<p>Doch.<br />
Der erste Wert eines Enums erhält die Nummer 0, alle anderen dann aufsteigend.<br />
Du kannst ihnen aber auch manuell Werte zuweisen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2367097</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2367097</guid><dc:creator><![CDATA[Nathan]]></dc:creator><pubDate>Fri, 22 Nov 2013 15:51:56 GMT</pubDate></item><item><title><![CDATA[Reply to C++ Schiffe Versenken on Fri, 22 Nov 2013 15:58:23 GMT]]></title><description><![CDATA[<p>jkhsjdhjs schrieb:</p>
<blockquote>
<p>EDIT: Und wie würde ich die Farben dann verwenden?</p>
</blockquote>
<p>Wenn du es so wie hier definierst ( <code>enum name { ... }</code> ), dann gelten die Bezeichner im umgebenden Namensraum (also in der Regel überall, wenn du keine Namensräume benutzt). Das heißt, du kannst wirklich &quot;SCHWARZ&quot; im Programm schreiben und es ist wie eine Zahl mit Wert 0.</p>
<p>Ab C++11 gibt es neu die &quot;strongly-typed&quot; enums, die mittels <code>enum class name { ... };</code> definiert werden. Diese unterliegen einer strengen Typprüfung (es ist also nicht mehr möglich, ein Wert aus einem enum dort zu benutzen, wo ein anderes enum erwartet wird) und die Elemente sind nun ebenfalls im jeweiligen Scope des enums. Bei <code>enum Farben {SCHWARZ, ...};</code> also zum Beispiel <code>Farben::SCHWARZ</code> .</p>
<p>Was davon besser geeignet ist, kommt auf den Einzelfall an. Die alte Methode provoziert Namenskonflikte. Manchmal sollen die Bezeichner aber auch wirklich überall gelten. Farbwerte sind ein bisschen ein Grenzfall. Man kann leicht Beispiele konstruieren, wo die alte Methode unpassend ist, aber hier würde ich sagen, passt keiner dieser Fälle und ich würde es so machen, wie du es hier vorschlägst.</p>
<blockquote>
<p>Weil denen wurde doch jetzt kein Wert zugewiesen, oder?</p>
</blockquote>
<p>Wenn man nichts anderes angibt, dann gehen die Werte bei 0 los und sind dann jeweils um 1 aufsteigend. Hier passt also alles schon, sofern du keine Farben vergessen hast. Besserer Stil wäre es daher wohl (um solche Fehler zu vermeiden) allen Farben einen Wert zu zu weisen:</p>
<pre><code>enum foo
{
  hundert = 100, 
  tausend = 1000, 
  million = 1000000
};
</code></pre>
<p>P.S.: In deinem Codebeispiel fehlen übrigens die Kommas zwischen den Werten, aber das hast du sicherlich schon bemerkt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2367100</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2367100</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Fri, 22 Nov 2013 15:58:23 GMT</pubDate></item><item><title><![CDATA[Reply to C++ Schiffe Versenken on Fri, 22 Nov 2013 16:02:45 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/29873">@Nathan</a>:<br />
Aber ich brauche ja den Wert 0x0001 und nicht 1 oder ist das egal?</p>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/19375">@SeppJ</a>:<br />
Danke, muss jetzt erstmal deinen Post komplett lesen, und nein, hatte es noch nicht gemerkt, hatte die komplett vergessen, ich editiers grad</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2367101</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2367101</guid><dc:creator><![CDATA[jkhsjdhjs]]></dc:creator><pubDate>Fri, 22 Nov 2013 16:02:45 GMT</pubDate></item><item><title><![CDATA[Reply to C++ Schiffe Versenken on Fri, 22 Nov 2013 16:02:11 GMT]]></title><description><![CDATA[<p>Wie viel ist denn 0x0001, wenn du es als Dezimalzahl schreibst?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2367102</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2367102</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Fri, 22 Nov 2013 16:02:11 GMT</pubDate></item><item><title><![CDATA[Reply to C++ Schiffe Versenken on Fri, 22 Nov 2013 16:29:01 GMT]]></title><description><![CDATA[<p>Ok, ja das wird mir jetzt auch klar ^^</p>
<p>Dann könnte ich doch auch schon vorher als ich noch #define verwendet habe, nur 1 schreiben. Habe das mit den Farben von irgendner Seite, die auf Google war. Da stand das mit dem 0x0001</p>
<p>EDIT: Und seit wann gibt es C++ 11? Ich nutze Visual Studio 2008</p>
<p>EDIT2: Und kommen bei enumeratoren dann nach 9 auch a,b,c usw?</p>
<p>EDIT3: Und wie würde ein typedef für ein 2 Dimensionales Array aussehen?<br />
Habe das eben gegoogled, kam aber auf Schwachsinn, der nicht funktioniert hat <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 />
:</p>
<pre><code>typedef array&lt;array&lt;int, d_array;
</code></pre>
<p>So leicht geht das dann doch nicht, oder? ^^<br />
Ich habe auch von typedef mit Parameter gelesen, ich muss warscheinlich solche nehmen, oder?</p>
<p>Und wie teile ich Programmcode auf mehrere Dateien auf?<br />
Das wurde mir ja auch am Anfang geraten.</p>
<p>Könnte mir bitte jemand all diese Fragen beantworten? Danke <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/2367103</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2367103</guid><dc:creator><![CDATA[jkhsjdhjs]]></dc:creator><pubDate>Fri, 22 Nov 2013 16:29:01 GMT</pubDate></item><item><title><![CDATA[Reply to C++ Schiffe Versenken on Fri, 22 Nov 2013 18:55:41 GMT]]></title><description><![CDATA[<p>@asdfsdf:</p>
<p>Bei deinem code für die Koordinatenverarbeitung bekomme ich die Meldung, dass tolower kein Element von std ist.</p>
<p>und @ Mods: Sry für Doppelpost. Aber sonst hätte nie jemand den Post gesehn, wenn ich nur editiert hätte.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2367153</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2367153</guid><dc:creator><![CDATA[jkhsjdhjs]]></dc:creator><pubDate>Fri, 22 Nov 2013 18:55:41 GMT</pubDate></item><item><title><![CDATA[Reply to C++ Schiffe Versenken on Fri, 22 Nov 2013 19:44:01 GMT]]></title><description><![CDATA[<p>jkhsjdhjs schrieb:</p>
<blockquote>
<p>Bei deinem code für die Koordinatenverarbeitung bekomme ich die Meldung, dass tolower kein Element von std ist.</p>
</blockquote>
<p>#include &lt;cctype&gt;</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2367163</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2367163</guid><dc:creator><![CDATA[Nathan]]></dc:creator><pubDate>Fri, 22 Nov 2013 19:44:01 GMT</pubDate></item><item><title><![CDATA[Reply to C++ Schiffe Versenken on Fri, 22 Nov 2013 20:16:51 GMT]]></title><description><![CDATA[<p>Danke, funktioniert perfekt <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/2367171</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2367171</guid><dc:creator><![CDATA[jkhsjdhjs]]></dc:creator><pubDate>Fri, 22 Nov 2013 20:16:51 GMT</pubDate></item><item><title><![CDATA[Reply to C++ Schiffe Versenken on Sat, 23 Nov 2013 10:10:56 GMT]]></title><description><![CDATA[<p>Für globale Funktionen (ohne Klassen) kannst du dich ersteinmal an <a href="http://www.mikrocontroller.net/articles/Funktionen_auslagern_%28C%29" rel="nofollow">http://www.mikrocontroller.net/articles/Funktionen_auslagern_(C)</a> halten.<br />
Wichtig ist ein Verständnis von Headerdateien zu erhalten.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2367274</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2367274</guid><dc:creator><![CDATA[Th69]]></dc:creator><pubDate>Sat, 23 Nov 2013 10:10:56 GMT</pubDate></item><item><title><![CDATA[Reply to C++ Schiffe Versenken on Sat, 23 Nov 2013 10:23:49 GMT]]></title><description><![CDATA[<p>Ok, Danke. Ich verstehe jetzt wie man ein Programm in mehrere Dateien aufteilt. Was ich aber immer noch nicht weiß ist, was es mir bringt, wenn ich das Programm aufteile?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2367283</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2367283</guid><dc:creator><![CDATA[jkhsjdhjs]]></dc:creator><pubDate>Sat, 23 Nov 2013 10:23:49 GMT</pubDate></item></channel></rss>