<?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[deklarations zwickmühle]]></title><description><![CDATA[<p>Hi.</p>
<p>Ich schreibe gerade an einem Projekt. Dieses Projekt beinhaltet eine Klasse die auf Memberfunktionspointer zurückgreift. Ich habe für diese Memberfunktions pointer einen Typen deklariert:</p>
<pre><code class="language-cpp">//header.h
typedef void (__cdecl demo::*PFUNC ) (__in DWORD _Param);
</code></pre>
<p>Nun benutze ich diesen Typen in Verbindung mit einer Struktur die vor der Deklaration der Klasse deklariert werden muss da sie in der Klasse mit einbezogen wird:</p>
<pre><code class="language-cpp">//header.h
typedef struct TASK{

  BYTE Flag;
  PFUNC Function;
  DWORD Parameter;
}TSK;
typedef TSK * PTAST;
</code></pre>
<p>Aber der Typ selbst zeigt auf die noch undeklarierte Klasse. Wie ihr seht kann ich keins von beidem zuerst deklarieren da sich beide elemente gegenseitig referenzieren. Lösung?</p>
<p>Hier nochmal eine Klasse damit ihr wisst was ich meine:</p>
<pre><code class="language-cpp">//class.h
typedef class demo{

public:
   void __cdecl callany( __in PTASK _Dst );
   void __cdecl function( __in DWORD _Param );
}demo;
</code></pre>
<p>( Ich würde void Pointer für diese Strukturen benutzen aber das wäre dann wieder<br />
extra Aufwand. gibt es nicht sowas wie einen allgemeinen Memberfunktionspointer der für alle beliebigen Klassen funktioniert? )</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/265484/deklarations-zwickmühle</link><generator>RSS for Node</generator><lastBuildDate>Fri, 04 Sep 2026 01:36:38 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/265484.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 23 Apr 2010 21:48:49 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to deklarations zwickmühle on Fri, 23 Apr 2010 21:48:49 GMT]]></title><description><![CDATA[<p>Hi.</p>
<p>Ich schreibe gerade an einem Projekt. Dieses Projekt beinhaltet eine Klasse die auf Memberfunktionspointer zurückgreift. Ich habe für diese Memberfunktions pointer einen Typen deklariert:</p>
<pre><code class="language-cpp">//header.h
typedef void (__cdecl demo::*PFUNC ) (__in DWORD _Param);
</code></pre>
<p>Nun benutze ich diesen Typen in Verbindung mit einer Struktur die vor der Deklaration der Klasse deklariert werden muss da sie in der Klasse mit einbezogen wird:</p>
<pre><code class="language-cpp">//header.h
typedef struct TASK{

  BYTE Flag;
  PFUNC Function;
  DWORD Parameter;
}TSK;
typedef TSK * PTAST;
</code></pre>
<p>Aber der Typ selbst zeigt auf die noch undeklarierte Klasse. Wie ihr seht kann ich keins von beidem zuerst deklarieren da sich beide elemente gegenseitig referenzieren. Lösung?</p>
<p>Hier nochmal eine Klasse damit ihr wisst was ich meine:</p>
<pre><code class="language-cpp">//class.h
typedef class demo{

public:
   void __cdecl callany( __in PTASK _Dst );
   void __cdecl function( __in DWORD _Param );
}demo;
</code></pre>
<p>( Ich würde void Pointer für diese Strukturen benutzen aber das wäre dann wieder<br />
extra Aufwand. gibt es nicht sowas wie einen allgemeinen Memberfunktionspointer der für alle beliebigen Klassen funktioniert? )</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1887479</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1887479</guid><dc:creator><![CDATA[irgendeinbenutzername]]></dc:creator><pubDate>Fri, 23 Apr 2010 21:48:49 GMT</pubDate></item><item><title><![CDATA[Reply to deklarations zwickmühle on Fri, 23 Apr 2010 21:53:43 GMT]]></title><description><![CDATA[<p>Was ist das denn? Standardkonformes C++ ist es auf jeden Fall nicht...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1887480</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1887480</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Fri, 23 Apr 2010 21:53:43 GMT</pubDate></item><item><title><![CDATA[Reply to deklarations zwickmühle on Fri, 23 Apr 2010 21:53:58 GMT]]></title><description><![CDATA[<p>Lösung: Forwärtsdeklaration. Dann kannst du Zeiger auf diese Struktur deklarieren.</p>
<p>Der erste Typedef in header.h ist übrigens vollkommen unsinnig.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1887481</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1887481</guid><dc:creator><![CDATA[Janjan]]></dc:creator><pubDate>Fri, 23 Apr 2010 21:53:58 GMT</pubDate></item><item><title><![CDATA[Reply to deklarations zwickmühle on Fri, 23 Apr 2010 22:04:27 GMT]]></title><description><![CDATA[<p>Das meinte ich doch mit &quot;void Pointer&quot;.<br />
Würde ich dann vorzugsweise so machen?</p>
<pre><code class="language-cpp">typedef class demo{

public:
 void __cdecl executetask( __in LPVOID Task );
 void __cdecl funktion( DWORD Zeug );
}demo;
</code></pre>
<p>Dachte mir nur es gebe einen Weg ohne mir jetzt soviel aufwand zumachen. Das Projekt ist etwas größer und ich müsste mehr als nur das umschreiben. Aber wenns nicht anders geht, muss ich mich wohl ranhalten.</p>
<p>Danke schonmal. <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/1887487</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1887487</guid><dc:creator><![CDATA[OriginalPoster]]></dc:creator><pubDate>Fri, 23 Apr 2010 22:04:27 GMT</pubDate></item><item><title><![CDATA[Reply to deklarations zwickmühle on Fri, 23 Apr 2010 22:37:16 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">typedef class demo{

public:
 typedef ...  //task und pointer

public:
 void _cdecl ... // funktionen

}demo;

typedef ... //task und pointer typen deklarationen nochmal hier
</code></pre>
<p>Hab doch eine einfachere Lösung gefunden. Habe einfach die Typen in der Klasse und nocheinmal ausserhalb definiert. Danke trozdem.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1887501</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1887501</guid><dc:creator><![CDATA[OP]]></dc:creator><pubDate>Fri, 23 Apr 2010 22:37:16 GMT</pubDate></item><item><title><![CDATA[Reply to deklarations zwickmühle on Sat, 24 Apr 2010 07:19:52 GMT]]></title><description><![CDATA[<p>OP schrieb:</p>
<blockquote>
<pre><code class="language-cpp">typedef class demo{
}demo;
</code></pre>
</blockquote>
<p>Der typedef ist dämlich.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1887536</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1887536</guid><dc:creator><![CDATA[Janjan]]></dc:creator><pubDate>Sat, 24 Apr 2010 07:19:52 GMT</pubDate></item><item><title><![CDATA[Reply to deklarations zwickmühle on Sat, 24 Apr 2010 11:06:10 GMT]]></title><description><![CDATA[<p>Darf ich mal fragen, wass dieses Thema im C++-Bereich verloren hat? Der gezeigte Code ist doch augenscheinlich kein C++ und der Autor hat nicht einmal die geringste Ahnung von dieser Sprache</p>
<pre><code class="language-cpp">typedef class
</code></pre>
<p>*schauder*<br />
Entweder der Autor lernt C++ und stellt dann eine ordentliche Frage, oder dieses Thema geht direkt ins Ansi-C-Forum.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1887617</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1887617</guid><dc:creator><![CDATA[Gate]]></dc:creator><pubDate>Sat, 24 Apr 2010 11:06:10 GMT</pubDate></item></channel></rss>