<?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[Event an Ober Objekt schicken?]]></title><description><![CDATA[<p>Hi,<br />
Ich versuche schon den ganzen tag Verzweifelt ein Event zwischen zwei Objekten zu realisieren:<br />
ich habe ein PackageHandler Objekt, welches ein Server-Objekt erstellt.<br />
Im späteren Verlauf soll der Server Event Nachrichten an den PackageHandler schicken.<br />
Allerdings weiss ich nicht wie ich das ganze realisieren soll?<br />
Ich habe in c++ leider nicht nicht viel erfahrung.. Bisher kann ich nur Delphi und Java.</p>
<p>mein bisheriger code:</p>
<pre><code class="language-cpp">Server.h:
class Server
{
public:
	Server(void (*iChange)(int &amp;));
	~Server(void);
	void (* iChange)(int &amp;);
};
Server.cpp:
Server::Server(void (*iChangeHandler)(int &amp;))
{
	mCounter = 0;
	this-&gt;iChange = iChangeHandler;
	int a = 5;
	iChange(a);
}
Server::~Server(void)
{
}

PackageHandler.h:

class PackageHandler
{
public:
	PackageHandler(void);
	~PackageHandler(void);
	void HandlePacket(int &amp;blub);
};

PackageHandler.cpp:

void PackageHandler::HandlePacket(int &amp;blub)
{
	cout &lt;&lt; &quot;Event: &quot; &lt;&lt; blub &lt;&lt; endl;
}

void HandlePacketB(int &amp;blub)
{
	cout &lt;&lt; &quot;Event: &quot; &lt;&lt; blub &lt;&lt; endl;
}

PackageHandler::PackageHandler(void)
{
	//mServer = new Server(HandlePacketB); //funktioniert super
    mServer = new Server(&amp;PackageHandler::HandlePacket);// das leider nicht aber das würde ich gerne haben!
}
</code></pre>
<p>Fehlermeldung:</p>
<pre><code>Error	1	error C2664: 'Server::Server(void (__cdecl *)(int &amp;))' : cannot convert parameter 1 from 'void (__thiscall PackageHandler::* )(int &amp;)' to 'void (__cdecl *)(int &amp;)'
</code></pre>
<p>was mache ich falsch?</p>
<p>mfg<br />
gandime</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/263974/event-an-ober-objekt-schicken</link><generator>RSS for Node</generator><lastBuildDate>Sat, 05 Sep 2026 12:03:40 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/263974.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 30 Mar 2010 15:59:12 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Event an Ober Objekt schicken? on Tue, 30 Mar 2010 15:59:12 GMT]]></title><description><![CDATA[<p>Hi,<br />
Ich versuche schon den ganzen tag Verzweifelt ein Event zwischen zwei Objekten zu realisieren:<br />
ich habe ein PackageHandler Objekt, welches ein Server-Objekt erstellt.<br />
Im späteren Verlauf soll der Server Event Nachrichten an den PackageHandler schicken.<br />
Allerdings weiss ich nicht wie ich das ganze realisieren soll?<br />
Ich habe in c++ leider nicht nicht viel erfahrung.. Bisher kann ich nur Delphi und Java.</p>
<p>mein bisheriger code:</p>
<pre><code class="language-cpp">Server.h:
class Server
{
public:
	Server(void (*iChange)(int &amp;));
	~Server(void);
	void (* iChange)(int &amp;);
};
Server.cpp:
Server::Server(void (*iChangeHandler)(int &amp;))
{
	mCounter = 0;
	this-&gt;iChange = iChangeHandler;
	int a = 5;
	iChange(a);
}
Server::~Server(void)
{
}

PackageHandler.h:

class PackageHandler
{
public:
	PackageHandler(void);
	~PackageHandler(void);
	void HandlePacket(int &amp;blub);
};

PackageHandler.cpp:

void PackageHandler::HandlePacket(int &amp;blub)
{
	cout &lt;&lt; &quot;Event: &quot; &lt;&lt; blub &lt;&lt; endl;
}

void HandlePacketB(int &amp;blub)
{
	cout &lt;&lt; &quot;Event: &quot; &lt;&lt; blub &lt;&lt; endl;
}

PackageHandler::PackageHandler(void)
{
	//mServer = new Server(HandlePacketB); //funktioniert super
    mServer = new Server(&amp;PackageHandler::HandlePacket);// das leider nicht aber das würde ich gerne haben!
}
</code></pre>
<p>Fehlermeldung:</p>
<pre><code>Error	1	error C2664: 'Server::Server(void (__cdecl *)(int &amp;))' : cannot convert parameter 1 from 'void (__thiscall PackageHandler::* )(int &amp;)' to 'void (__cdecl *)(int &amp;)'
</code></pre>
<p>was mache ich falsch?</p>
<p>mfg<br />
gandime</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1875584</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1875584</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Tue, 30 Mar 2010 15:59:12 GMT</pubDate></item><item><title><![CDATA[Reply to Event an Ober Objekt schicken? on Tue, 30 Mar 2010 16:03:04 GMT]]></title><description><![CDATA[<p>Das Problem liegt im impliziten this das jeder Methode mit übergeben wird.</p>
<p>Mir sind zwei Lösungswege bekannt:</p>
<ol>
<li>Methode static machen</li>
<li>boost::bind</li>
</ol>
]]></description><link>https://www.c-plusplus.net/forum/post/1875588</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1875588</guid><dc:creator><![CDATA[blub* 0]]></dc:creator><pubDate>Tue, 30 Mar 2010 16:03:04 GMT</pubDate></item><item><title><![CDATA[Reply to Event an Ober Objekt schicken? on Tue, 30 Mar 2010 19:59:11 GMT]]></title><description><![CDATA[<p>blub² schrieb:</p>
<blockquote>
<p>Das Problem liegt im impliziten this das jeder Methode mit übergeben wird.</p>
<p>Mir sind zwei Lösungswege bekannt:</p>
<ol>
<li>Methode static machen</li>
<li>boost::bind</li>
</ol>
</blockquote>
<p>Naja. Wenn man es selbst in der Hand hat, kann man durchaus auch mal überlegen, ob man da nicht gleich auch einfach den Zeiger auf das Objekt mitgibt. boost::bind ist natürlich die allgemeinere Variante, aber wenn man den Overhead nicht haben möchte, dann kann man das auch selbst machen.</p>
<p>@TO:<br />
Schau mal hier, wie Memberfunktionszeiger funktionieren:<br />
<a href="http://www.newty.de/fpt/index.html" rel="nofollow">http://www.newty.de/fpt/index.html</a></p>
<p>Dann kannst du da einfach noch einen Zeiger auf die Objektinstanz übergeben. Dann geht das auch.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1875723</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1875723</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Tue, 30 Mar 2010 19:59:11 GMT</pubDate></item><item><title><![CDATA[Reply to Event an Ober Objekt schicken? on Wed, 31 Mar 2010 15:21:02 GMT]]></title><description><![CDATA[<p>Danke für die Hilfe!<br />
Nun funktioniert das gute Event!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1876036</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1876036</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Wed, 31 Mar 2010 15:21:02 GMT</pubDate></item><item><title><![CDATA[Reply to Event an Ober Objekt schicken? on Wed, 31 Mar 2010 19:21:38 GMT]]></title><description><![CDATA[<p>Wie hast du es den nun gemacht? (Lösungen bei Möglichkeit immer auch mitposten, denn es gibt nichts ärgerliches, wenn man einmal etwas sucht, genau einen Beitrag findet, der das gleiche Problem hatte, dann aber nur &quot;es geht&quot; postet und man ist selbst so schlau, wie vorher. <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="😉"
    /> - In dem Fall mit den Links gehts natürlich, aber es gibt nicht immer so offensichtliche Lösungen)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1876147</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1876147</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Wed, 31 Mar 2010 19:21:38 GMT</pubDate></item></channel></rss>