<?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[Functions Pointer in Classen nutzen]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>ich sitze gerade vor einem kleinen Problem und sehe glaub ich den Wald vor Bäumen nicht<br />
und komme einfach nicht weiter. Ich habe schon einiges ausprobiert und im I-Net gesucht aber nichts Passendes gefunden :(.</p>
<p>Ich möchte gerne in einer Parent Klasse ein z.B. Event Deklarieren und nutzen (siehe class TParent).<br />
Der Funktion soll in der nachfolgenden Klasse eine Function Pointer zugewiesen werden.<br />
Wenn in der Parent Klasse nun die Funktion TestFunc() aufgerufen wird,<br />
soll geprüft werden ob OnEvent ein Function Pointer zugewisen wurde und sollte es so sein diese gecallt werden.</p>
<p>Im Constructor der Master Klasse soll in diesem Beispiel dem OnEvent der Parent Klasse die Funktion OnGetEvent zugewiesen werden.<br />
Leider komme ich genau hier nicht mehr weiter. Irgendwie hab ich hier ein dicken Denkfehler... <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
<p>Hier mal ein kleines einfaches Beispiel wie ich mir das ungefähr vorstelle:</p>
<pre><code>class TObject{
 //...
};

typedef void (*TNotifyEvent)(TObject *Sender);

class TParent: public TObject{
public:
    TNotifyEvent OnEvent;

    void TestFunc(){
        if (OnEvent)
        {
            OnEvent(this);
        };
    };
};

class TMaster: public TParent{
public:
    void OnGetEvent(TObject *Sender){};

    TMaster(){
        OnEvent = &amp;TMaster::OnGetEvent;

    };
};
</code></pre>
<p>Ich hoffe jemand hat eine Idee, wie ich das umsetzen kann.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/339621/functions-pointer-in-classen-nutzen</link><generator>RSS for Node</generator><lastBuildDate>Sun, 12 Apr 2026 02:02:55 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/339621.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 14 Sep 2016 09:17:23 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Functions Pointer in Classen nutzen on Wed, 14 Sep 2016 09:17:23 GMT]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>ich sitze gerade vor einem kleinen Problem und sehe glaub ich den Wald vor Bäumen nicht<br />
und komme einfach nicht weiter. Ich habe schon einiges ausprobiert und im I-Net gesucht aber nichts Passendes gefunden :(.</p>
<p>Ich möchte gerne in einer Parent Klasse ein z.B. Event Deklarieren und nutzen (siehe class TParent).<br />
Der Funktion soll in der nachfolgenden Klasse eine Function Pointer zugewiesen werden.<br />
Wenn in der Parent Klasse nun die Funktion TestFunc() aufgerufen wird,<br />
soll geprüft werden ob OnEvent ein Function Pointer zugewisen wurde und sollte es so sein diese gecallt werden.</p>
<p>Im Constructor der Master Klasse soll in diesem Beispiel dem OnEvent der Parent Klasse die Funktion OnGetEvent zugewiesen werden.<br />
Leider komme ich genau hier nicht mehr weiter. Irgendwie hab ich hier ein dicken Denkfehler... <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
<p>Hier mal ein kleines einfaches Beispiel wie ich mir das ungefähr vorstelle:</p>
<pre><code>class TObject{
 //...
};

typedef void (*TNotifyEvent)(TObject *Sender);

class TParent: public TObject{
public:
    TNotifyEvent OnEvent;

    void TestFunc(){
        if (OnEvent)
        {
            OnEvent(this);
        };
    };
};

class TMaster: public TParent{
public:
    void OnGetEvent(TObject *Sender){};

    TMaster(){
        OnEvent = &amp;TMaster::OnGetEvent;

    };
};
</code></pre>
<p>Ich hoffe jemand hat eine Idee, wie ich das umsetzen kann.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2508642</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2508642</guid><dc:creator><![CDATA[coly]]></dc:creator><pubDate>Wed, 14 Sep 2016 09:17:23 GMT</pubDate></item><item><title><![CDATA[Reply to Functions Pointer in Classen nutzen on Wed, 14 Sep 2016 09:48:33 GMT]]></title><description><![CDATA[<p>Ich verstehe nicht, was du machen willst, und ich glaube dein Beispiel zeigt auch nicht das echte Problem.<br />
Im Codebeispiel würde ich onEvent einfach als virtuelle Funktion definieren.<br />
Grundsätzlich: für Memberfunktionen benötigt man Memberfunktionspointer und man muss sie auch immer mit einem Objekt für this versorgen. Alternative: std::function und Lambda.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2508646</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2508646</guid><dc:creator><![CDATA[manni66]]></dc:creator><pubDate>Wed, 14 Sep 2016 09:48:33 GMT</pubDate></item><item><title><![CDATA[Reply to Functions Pointer in Classen nutzen on Wed, 14 Sep 2016 10:53:04 GMT]]></title><description><![CDATA[<p>Hallo coly,</p>
<p>möchtest du die VCL (Delphi/Borland C++ Builder/RAD Studio) nachbauen (deine Klassennamen sehen so aus)?</p>
<p>Das mit den Methodenzeigern wird schwierig, denn dafür gibt es beim BCB das zusätzliche Schlüsselwort <a href="http://docwiki.embarcadero.com/RADStudio/Seattle/en/Closure" rel="nofollow">__closure</a>.</p>
<p>Aber schau auch mal in <a href="http://stackoverflow.com/questions/27769401/borland-style-closure-in-gcc" rel="nofollow">Borland style __closure in gcc</a>.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2508659</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2508659</guid><dc:creator><![CDATA[Th69]]></dc:creator><pubDate>Wed, 14 Sep 2016 10:53:04 GMT</pubDate></item><item><title><![CDATA[Reply to Functions Pointer in Classen nutzen on Wed, 14 Sep 2016 11:11:03 GMT]]></title><description><![CDATA[<p>Hallo Th69,</p>
<p>ja, im prinziep ähnlich dem Delphi von der Logic her.<br />
Hab nach zich Seiten lesen aber auch schon die Problematik festgestellt.<br />
Die meisten nutzen irgendwelche Hacks oder Modifizieren den Compiler.</p>
<p>/coly</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2508663</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2508663</guid><dc:creator><![CDATA[coly]]></dc:creator><pubDate>Wed, 14 Sep 2016 11:11:03 GMT</pubDate></item><item><title><![CDATA[Reply to Functions Pointer in Classen nutzen on Wed, 21 Sep 2016 14:45:58 GMT]]></title><description><![CDATA[<p>Im C++Builder heisst das Schlüsselwort closure.<br />
Das sollte sich aber mit bind nachbauen lassen (vor C++14 boost::bind).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2509293</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2509293</guid><dc:creator><![CDATA[MichelRT]]></dc:creator><pubDate>Wed, 21 Sep 2016 14:45:58 GMT</pubDate></item></channel></rss>