<?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[Klasse implementieren]]></title><description><![CDATA[<p>Guten Abend alle miteinander</p>
<p>Ich behaupte mal zu wissen wie man mit Klassen arbeitet, dennoch hänge ich z.z. an einem Problem das sich meinem Verständnis enzieht.</p>
<p>Ich habe folgende Klasse definiert:</p>
<pre><code class="language-cpp">class CGameEngine
{
public:
	CGameEngine();
	~CGameEngine(void);

	void SetWindowHandle(HWND WHND); 
.
.
.
</code></pre>
<p>und diese im Hauptprogramm instanziert (global):</p>
<pre><code class="language-cpp">#include &quot;GameEngine.h&quot;

CGameEngine GaE();
</code></pre>
<p>soweit so gut, allerdings wenn ich nun in der WinMain Funktion die Funktion SetWindowHandle() aufrufe, kriege ich vom Compiler einen C2228 Error (&quot;error C2228: left of '.SetWindowHandle' must have class/struct/union&quot;)</p>
<pre><code class="language-cpp">GaE.SetWindowHandle(hwnd);
</code></pre>
<p>Ich wette es ist etwas super simples aber ich steh echt aufm Schlauch. Hoffe einer von euch kann mir einen Wink mit dem Zaunpfahl geben.</p>
<p>VG<br />
ghost</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/287555/klasse-implementieren</link><generator>RSS for Node</generator><lastBuildDate>Thu, 20 Aug 2026 10:25:34 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/287555.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 30 May 2011 20:39:17 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Klasse implementieren on Mon, 30 May 2011 20:39:17 GMT]]></title><description><![CDATA[<p>Guten Abend alle miteinander</p>
<p>Ich behaupte mal zu wissen wie man mit Klassen arbeitet, dennoch hänge ich z.z. an einem Problem das sich meinem Verständnis enzieht.</p>
<p>Ich habe folgende Klasse definiert:</p>
<pre><code class="language-cpp">class CGameEngine
{
public:
	CGameEngine();
	~CGameEngine(void);

	void SetWindowHandle(HWND WHND); 
.
.
.
</code></pre>
<p>und diese im Hauptprogramm instanziert (global):</p>
<pre><code class="language-cpp">#include &quot;GameEngine.h&quot;

CGameEngine GaE();
</code></pre>
<p>soweit so gut, allerdings wenn ich nun in der WinMain Funktion die Funktion SetWindowHandle() aufrufe, kriege ich vom Compiler einen C2228 Error (&quot;error C2228: left of '.SetWindowHandle' must have class/struct/union&quot;)</p>
<pre><code class="language-cpp">GaE.SetWindowHandle(hwnd);
</code></pre>
<p>Ich wette es ist etwas super simples aber ich steh echt aufm Schlauch. Hoffe einer von euch kann mir einen Wink mit dem Zaunpfahl geben.</p>
<p>VG<br />
ghost</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2071197</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2071197</guid><dc:creator><![CDATA[ghostcoder]]></dc:creator><pubDate>Mon, 30 May 2011 20:39:17 GMT</pubDate></item><item><title><![CDATA[Reply to Klasse implementieren on Mon, 30 May 2011 20:42:04 GMT]]></title><description><![CDATA[<p>Du instanzierst da keine Variable, sondern deklarierst eine Funktion.</p>
<p>Wenn du das nicht global, sondern lokal gemacht hättest, hätte dir das dein Compiler sogar gesagt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2071198</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2071198</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Mon, 30 May 2011 20:42:04 GMT</pubDate></item><item><title><![CDATA[Reply to Klasse implementieren on Mon, 30 May 2011 21:16:58 GMT]]></title><description><![CDATA[<p>wenns denn so wäre.</p>
<p>ehrlichgesagt verstehe ich nicht ganz wieso</p>
<pre><code class="language-cpp">CGameEngine Gae()
</code></pre>
<p>keine Klasse instanziert bzw. was da eigtl. den Fehler hervorruft. Aus deinem Post les ich herraus, dass es sich um ein grundlegendes strukturellles Probelm handelt aber alles andere bleibt mir schleierhaft.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2071210</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2071210</guid><dc:creator><![CDATA[ghostcoder]]></dc:creator><pubDate>Mon, 30 May 2011 21:16:58 GMT</pubDate></item><item><title><![CDATA[Reply to Klasse implementieren on Mon, 30 May 2011 21:19:26 GMT]]></title><description><![CDATA[<p>lass einfach die klammern weg</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2071213</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2071213</guid><dc:creator><![CDATA[()]]></dc:creator><pubDate>Mon, 30 May 2011 21:19:26 GMT</pubDate></item><item><title><![CDATA[Reply to Klasse implementieren on Mon, 30 May 2011 21:21:19 GMT]]></title><description><![CDATA[<p>Das was du da machst ist nichts weiteres als das hier:</p>
<pre><code class="language-cpp">int foo();
</code></pre>
<p>Einfach mit einem anderen Rückgabetypen und anderem Namen. Und ist grundlegend verschieden von dem hier:</p>
<pre><code class="language-cpp">int foo;
</code></pre>
<p>Alles klar?</p>
<p>Knapp gesagt: Klammern weg lassen, aber ich hoffe du verstehst das Problem jetzt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2071214</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2071214</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Mon, 30 May 2011 21:21:19 GMT</pubDate></item><item><title><![CDATA[Reply to Klasse implementieren on Mon, 30 May 2011 21:22:00 GMT]]></title><description><![CDATA[<p>Der Compiler interpretiert den Code <code>CGameEngine Gae();</code> als Deklaration einer Funktion, die eine Game-Engine zurückgibt - und nicht (wie du erwartet hättest) als ein default-konstruiertes Objekt. Wenn du ein Objekt erstellen willst, funktioniert:</p>
<pre><code class="language-cpp">CGameEngine Gae;
//oder
CGameEngine Gae = CGameEngine();
</code></pre>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/18422">@drakon</a>: Funktionsdeklarationen sind auch lokal erlaubt, auch wenn sie nicht viel Sinn 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/2071215</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2071215</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Mon, 30 May 2011 21:22:00 GMT</pubDate></item><item><title><![CDATA[Reply to Klasse implementieren on Mon, 30 May 2011 21:43:09 GMT]]></title><description><![CDATA[<p>CStoll schrieb:</p>
<blockquote>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/18422">@drakon</a>: Funktionsdeklarationen sind auch lokal erlaubt, auch wenn sie nicht viel Sinn 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>
</blockquote>
<p>Dem habe ich nicht widersprochen. <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 />
Aber ich hatte tatsächlich im Kopf, dass da wenigstens eine Warnung kommt, aber VS2010 bringt doch keine.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2071220</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2071220</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Mon, 30 May 2011 21:43:09 GMT</pubDate></item><item><title><![CDATA[Reply to Klasse implementieren on Tue, 31 May 2011 08:03:02 GMT]]></title><description><![CDATA[<p>Ich wäre extrem vorsichtig damit, WinAPI Funktionsnamen in eigenen Funktionen zu verwenden.<br />
Hintergrund: Die WinAPI deklariert viele Funktionen als Präprozessor-Makros.</p>
<p>zb</p>
<pre><code class="language-cpp">#ifdef _UNICODE
#  define MessageBox MessageBoxW
#else
#  define MessageBox MessageBoxA
#endif
</code></pre>
<p>Wenn du jetzt selbst MessageBox als Bezeichner verwendest,kannst du dir denken was passiert ...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2071297</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2071297</guid><dc:creator><![CDATA[Ethon]]></dc:creator><pubDate>Tue, 31 May 2011 08:03:02 GMT</pubDate></item><item><title><![CDATA[Reply to Klasse implementieren on Tue, 31 May 2011 08:41:21 GMT]]></title><description><![CDATA[<p>Oh man!<br />
Jetzt ergibt alles einen Sinn. Manchmal sieht man echt den Wald vor lauter Bäumen nicht. Danke euch!</p>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/26744">@Ethon</a>: Ist ehr unabsichtlich. Der Name war halt passend für das was die Funktion tut aber du hast natürlich recht. Ich werde den Namen was abändern.</p>
<p>VG<br />
ghost</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2071312</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2071312</guid><dc:creator><![CDATA[ghostcoder]]></dc:creator><pubDate>Tue, 31 May 2011 08:41:21 GMT</pubDate></item></channel></rss>