<?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[Welcher Klassen&#x2F;Strukturaufbau]]></title><description><![CDATA[<p>Hallo Leute,</p>
<p>Ich beschäftige mich zurzeit wieder etwas mit C++ und nun habe ich eine Optimierungsfrage, für einen besseren Code.</p>
<p>Es handelt sich um eine Bewegungssteuerung. Der Benutzer legt fest, dass er das Objekt mit den Tasten WSAD speichert.</p>
<p>Nun speichere ich in forward_key, left_key, right_key, backward_key (char) die Tasten ab.</p>
<p>Nun habe ich noch eine Eventschnittstelle, die die Tasteneingabe erkennt. Es wird geschickt ob die Taste losgelassen oder gedrückt wurde und die Taste (als char) wird übergeben.</p>
<p>Zurzeit sieht es so aus:</p>
<pre><code class="language-cpp">void KeyboardEvent(bool status, char key)
{
 if(key==forward_key){forward=status}
 if(key==left_key){forward=status}
 if(key==right_key){forward=status}
 if(key==backward_key){forward=status}
}
</code></pre>
<p>Da es nicht nur 4 Tasten zur Steuerung gibt, sondern eine Menge mehr, würde ich das gerne in ein Array packen, aber ich weiß nicht wie ich das handhaben soll... jemand eine Idee?</p>
<p>Also in der Art wie:</p>
<pre><code class="language-cpp">void KeyboardEvent(bool status, char key)
{
//controller ist das Array
controller[key]=status;
}
</code></pre>
<p>Jedoch muss der char Key für forward, left usw... variabel sein.</p>
<p>Sollte es jemand noch nicht ganz klar sein, was ich meine, versuch ich es noch einmal genauer zu beschreiben. <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="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/topic/292499/welcher-klassen-strukturaufbau</link><generator>RSS for Node</generator><lastBuildDate>Mon, 17 Aug 2026 00:14:15 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/292499.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 11 Sep 2011 13:37:06 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Welcher Klassen&#x2F;Strukturaufbau on Sun, 11 Sep 2011 13:38:55 GMT]]></title><description><![CDATA[<p>Hallo Leute,</p>
<p>Ich beschäftige mich zurzeit wieder etwas mit C++ und nun habe ich eine Optimierungsfrage, für einen besseren Code.</p>
<p>Es handelt sich um eine Bewegungssteuerung. Der Benutzer legt fest, dass er das Objekt mit den Tasten WSAD speichert.</p>
<p>Nun speichere ich in forward_key, left_key, right_key, backward_key (char) die Tasten ab.</p>
<p>Nun habe ich noch eine Eventschnittstelle, die die Tasteneingabe erkennt. Es wird geschickt ob die Taste losgelassen oder gedrückt wurde und die Taste (als char) wird übergeben.</p>
<p>Zurzeit sieht es so aus:</p>
<pre><code class="language-cpp">void KeyboardEvent(bool status, char key)
{
 if(key==forward_key){forward=status}
 if(key==left_key){forward=status}
 if(key==right_key){forward=status}
 if(key==backward_key){forward=status}
}
</code></pre>
<p>Da es nicht nur 4 Tasten zur Steuerung gibt, sondern eine Menge mehr, würde ich das gerne in ein Array packen, aber ich weiß nicht wie ich das handhaben soll... jemand eine Idee?</p>
<p>Also in der Art wie:</p>
<pre><code class="language-cpp">void KeyboardEvent(bool status, char key)
{
//controller ist das Array
controller[key]=status;
}
</code></pre>
<p>Jedoch muss der char Key für forward, left usw... variabel sein.</p>
<p>Sollte es jemand noch nicht ganz klar sein, was ich meine, versuch ich es noch einmal genauer zu beschreiben. <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="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2117885</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2117885</guid><dc:creator><![CDATA[nt2005]]></dc:creator><pubDate>Sun, 11 Sep 2011 13:38:55 GMT</pubDate></item><item><title><![CDATA[Reply to Welcher Klassen&#x2F;Strukturaufbau on Sun, 11 Sep 2011 14:26:11 GMT]]></title><description><![CDATA[<p>Ich habe zwar nur eine grobe Idee von dem was du suchst, aber vermutlich ist das die Lösung:</p>
<pre><code class="language-cpp">namespace Key
{
enum Key
{
  Q,W,E,R,T,Z,U,...
};
}

void KeyboardEvent(bool status, Key::Key key)
{
  if (key == Key::Q)
  if (key == Key::W)
  ..
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2117901</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2117901</guid><dc:creator><![CDATA[cooky451]]></dc:creator><pubDate>Sun, 11 Sep 2011 14:26:11 GMT</pubDate></item><item><title><![CDATA[Reply to Welcher Klassen&#x2F;Strukturaufbau on Sun, 11 Sep 2011 14:45:00 GMT]]></title><description><![CDATA[<p>Nein, das kann nicht die Lösung sein. Ist das mit den Array nicht möglich?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2117906</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2117906</guid><dc:creator><![CDATA[nt2005]]></dc:creator><pubDate>Sun, 11 Sep 2011 14:45:00 GMT</pubDate></item><item><title><![CDATA[Reply to Welcher Klassen&#x2F;Strukturaufbau on Sun, 11 Sep 2011 14:53:27 GMT]]></title><description><![CDATA[<p>Ein Array reicht da wohl nicht aus. Versuch es eher mit <a href="http://www.cplusplus.com/reference/stl/map/" rel="nofollow">std::map</a>.<br />
Sollte dann so ähnlich aussehen:</p>
<pre><code class="language-cpp">//...
std::map&lt;char, bool&gt; your_map;
//...
//dort packst du deine elemente rein und kannst das so drauf zu greifen
void KeyboardEvent(bool status, char key)
{
    your_map[key] = status;
    //als darstellung, würde das z.b. so aussehen   your_map['c'] = true;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2117910</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2117910</guid><dc:creator><![CDATA[freaky]]></dc:creator><pubDate>Sun, 11 Sep 2011 14:53:27 GMT</pubDate></item><item><title><![CDATA[Reply to Welcher Klassen&#x2F;Strukturaufbau on Sun, 11 Sep 2011 15:12:36 GMT]]></title><description><![CDATA[<p>Ach so, jetzt verstehe ich die Frage. Würde auch eine std::map nehmen, nur halt in Kombination mit einem enum.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2117927</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2117927</guid><dc:creator><![CDATA[cooky451]]></dc:creator><pubDate>Sun, 11 Sep 2011 15:12:36 GMT</pubDate></item><item><title><![CDATA[Reply to Welcher Klassen&#x2F;Strukturaufbau on Sun, 11 Sep 2011 17:02:49 GMT]]></title><description><![CDATA[<p>Warum nicht ein Array?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2117968</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2117968</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Sun, 11 Sep 2011 17:02:49 GMT</pubDate></item><item><title><![CDATA[Reply to Welcher Klassen&#x2F;Strukturaufbau on Sun, 11 Sep 2011 21:19:44 GMT]]></title><description><![CDATA[<p>volkard schrieb:</p>
<blockquote>
<p>Warum nicht ein Array?</p>
</blockquote>
<p>Gute Frage. Letzter Versuch:</p>
<pre><code class="language-cpp">namespace Key
{
enum Key
{
  Q,W,E,R,T,Z,U,..., KEY_COUNT
};
}
bool key_stats[Key::KEY_COUNT] = {0}; // = {false} ?

void KeyboardEvent(bool status, Key::Key key)
{
  // Wert von key prüfen?
  key_stats[key] = status;
}
</code></pre>
<p>Jetzt alle zufrieden? <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="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2117977</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2117977</guid><dc:creator><![CDATA[cooky451]]></dc:creator><pubDate>Sun, 11 Sep 2011 21:19:44 GMT</pubDate></item><item><title><![CDATA[Reply to Welcher Klassen&#x2F;Strukturaufbau on Sun, 11 Sep 2011 17:21:05 GMT]]></title><description><![CDATA[<p>cooky451 schrieb:</p>
<blockquote>
<p>Jetzt alle zufrieden? <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="🙂"
    /></p>
</blockquote>
<p>Nö, warum ein enum?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2117978</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2117978</guid><dc:creator><![CDATA[yarra]]></dc:creator><pubDate>Sun, 11 Sep 2011 17:21:05 GMT</pubDate></item><item><title><![CDATA[Reply to Welcher Klassen&#x2F;Strukturaufbau on Sun, 11 Sep 2011 17:28:58 GMT]]></title><description><![CDATA[<p>yarra schrieb:</p>
<blockquote>
<p>cooky451 schrieb:</p>
<blockquote>
<p>Jetzt alle zufrieden? <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="🙂"
    /></p>
</blockquote>
<p>Nö, warum ein enum?</p>
</blockquote>
<p>Was würdest du denn nehmen wollen? char? Und was machst du dann, wenn Ctrl gedrückt wird? <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="🙂"
    /> (Oder Shift, Enter, etc.)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2117984</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2117984</guid><dc:creator><![CDATA[cooky451]]></dc:creator><pubDate>Sun, 11 Sep 2011 17:28:58 GMT</pubDate></item><item><title><![CDATA[Reply to Welcher Klassen&#x2F;Strukturaufbau on Sun, 11 Sep 2011 17:46:39 GMT]]></title><description><![CDATA[<p>Danke für die Antwort, sieht schon vielversprechend aus, werde mich mal mit der Map beschäftigen. <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="🙂"
    /></p>
<p>Also Zahl (enum) wäre nicht so gut, da ich diese Key-Codes bekomme: <a href="http://msdn.microsoft.com/en-us/library/dd375731%28v=VS.85%29.aspx" rel="nofollow">http://msdn.microsoft.com/en-us/library/dd375731(v=VS.85).aspx</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2118000</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2118000</guid><dc:creator><![CDATA[nt2005]]></dc:creator><pubDate>Sun, 11 Sep 2011 17:46:39 GMT</pubDate></item><item><title><![CDATA[Reply to Welcher Klassen&#x2F;Strukturaufbau on Sun, 11 Sep 2011 17:51:09 GMT]]></title><description><![CDATA[<p>nt2005 schrieb:</p>
<blockquote>
<p>Also Zahl (enum) wäre nicht so gut, da ich diese Key-Codes bekomme: <a href="http://msdn.microsoft.com/en-us/library/dd375731%28v=VS.85%29.aspx" rel="nofollow">http://msdn.microsoft.com/en-us/library/dd375731(v=VS.85).aspx</a></p>
</blockquote>
<p>Also wäre die Arraygröße 256? Geht doch noch.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2118004</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2118004</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Sun, 11 Sep 2011 17:51:09 GMT</pubDate></item><item><title><![CDATA[Reply to Welcher Klassen&#x2F;Strukturaufbau on Sun, 11 Sep 2011 19:52:27 GMT]]></title><description><![CDATA[<p>Aber wie kann ich denn das char in diesen ArrayIndex (schätze mal int) umformen? Oder geht das so einfach?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2118045</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2118045</guid><dc:creator><![CDATA[nt2005]]></dc:creator><pubDate>Sun, 11 Sep 2011 19:52:27 GMT</pubDate></item><item><title><![CDATA[Reply to Welcher Klassen&#x2F;Strukturaufbau on Sun, 11 Sep 2011 19:54:34 GMT]]></title><description><![CDATA[<p>Die Keycodes liegen doch in int vor. Wenn Du ein Array mit 256 Einträgen hast, nimmst Du einfach den Index des Keycodes.</p>
<pre><code class="language-cpp">array[keycode]
</code></pre>
<p>Da brauchst Du nichts umformen. <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="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2118047</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2118047</guid><dc:creator><![CDATA[Eisflamme]]></dc:creator><pubDate>Sun, 11 Sep 2011 19:54:34 GMT</pubDate></item><item><title><![CDATA[Reply to Welcher Klassen&#x2F;Strukturaufbau on Mon, 12 Sep 2011 15:09:13 GMT]]></title><description><![CDATA[<p>Ich persönlich finde ein <em>std::map&lt;char, bool&gt; map</em> besser als ein <em>bool array[256]</em> und dann char als Index zu missbrauchen. Aber jeder hat einen anderen Geschmack.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2118313</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2118313</guid><dc:creator><![CDATA[freaky]]></dc:creator><pubDate>Mon, 12 Sep 2011 15:09:13 GMT</pubDate></item><item><title><![CDATA[Reply to Welcher Klassen&#x2F;Strukturaufbau on Mon, 12 Sep 2011 15:13:37 GMT]]></title><description><![CDATA[<p>FreakY&lt;3Cpp schrieb:</p>
<blockquote>
<p>besser als ein <em>bool array[256]</em> und dann char als Index zu missbrauchen</p>
</blockquote>
<p>Dem Link zufolge, der oben gepostet wurde, scheints eher Richtung unsigned char zu gehen, zumal Werte von 0x01-0xFE angegeben werden. Das ist dann schon wieder ne andere Situation.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2118315</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2118315</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Mon, 12 Sep 2011 15:13:37 GMT</pubDate></item><item><title><![CDATA[Reply to Welcher Klassen&#x2F;Strukturaufbau on Mon, 12 Sep 2011 15:20:53 GMT]]></title><description><![CDATA[<p>Das mag gut sein, deswegen meinte ich &quot;Ich persönlich finde...&quot;, da ich es als schlechten Stil sehe. Ich würde es alleine aus dem Grund nicht nehmen, weil ich es etwas hässlig finde und ich keine 256 Tasten auf der Tastatur habe. Aber wie gesagt, jeder wie er will, ist nur meine Meinung.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2118320</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2118320</guid><dc:creator><![CDATA[freaky]]></dc:creator><pubDate>Mon, 12 Sep 2011 15:20:53 GMT</pubDate></item><item><title><![CDATA[Reply to Welcher Klassen&#x2F;Strukturaufbau on Mon, 12 Sep 2011 17:14:29 GMT]]></title><description><![CDATA[<p>Hey, naja ich verwende ja einen Hook und da geht es ja über:</p>
<pre><code class="language-cpp">__declspec(dllexport) LRESULT CALLBACK Test::KeyboardProc ( int nCode, WPARAM wParam, LPARAM lParam)
{
 if(buffer[0]=='C' &amp;&amp; buffer[2]=='n' &amp;&amp; buffer[5]=='a' &amp;&amp; nCode == HC_ACTION)
 {
  KBDLLHOOKSTRUCT hookstruct = *((KBDLLHOOKSTRUCT*)lParam);
  // Find the letter of the typed key
  char lettre=(char)hookstruct.vkCode;
  ...
 }
 ...
}
</code></pre>
<p>vkCode ist ja ein DWord...<br />
Edit: Okay, ich kann es ja auch zu einen Integer casten. xD</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2118360</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2118360</guid><dc:creator><![CDATA[nt2005]]></dc:creator><pubDate>Mon, 12 Sep 2011 17:14:29 GMT</pubDate></item></channel></rss>