<?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[Funktionen als Parameter]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich möchte gern eine Klasse erstellen, welche beliebige Werte in Dateien schreibt. Soweit so gut.</p>
<p>Nun würde ich aber gern haben, dass eine Client-Klasse sich zum Schreiben von Werten so anmeldet, dass sie ihre entsprechende get-Methode (des zu schreibenden Wertes) übergibt, eventuell mit entsprechenden Datentyp, um das binäre Schreiben dann zu erleichtern/ermöglichen. So dass die Schreibeklasse dann je nach Konvention die entsprechenden Werte dann OnDemand abrufen kann.</p>
<p>So ein get-Methode kann z.B. auch mit einem index als Parameter aufgerufen werden, so dass die Schreibeklasse z.B. die Werte getMethodeA(1), getMethodeB(1), getMethodeA(2), getMethodeB(2), ... , getMethodeA(100), getMethodeB(100) ohne Clientbemühungen ausgeben kann.</p>
<p>Ist soetwas möglich? Wenn ja, wie geht das oder wo müsste ich mich da informieren?</p>
<p>Danke im Voraus,<br />
Mat.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/193439/funktionen-als-parameter</link><generator>RSS for Node</generator><lastBuildDate>Mon, 28 Sep 2026 00:59:30 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/193439.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 26 Sep 2007 08:26:44 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Funktionen als Parameter on Wed, 26 Sep 2007 08:26:44 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich möchte gern eine Klasse erstellen, welche beliebige Werte in Dateien schreibt. Soweit so gut.</p>
<p>Nun würde ich aber gern haben, dass eine Client-Klasse sich zum Schreiben von Werten so anmeldet, dass sie ihre entsprechende get-Methode (des zu schreibenden Wertes) übergibt, eventuell mit entsprechenden Datentyp, um das binäre Schreiben dann zu erleichtern/ermöglichen. So dass die Schreibeklasse dann je nach Konvention die entsprechenden Werte dann OnDemand abrufen kann.</p>
<p>So ein get-Methode kann z.B. auch mit einem index als Parameter aufgerufen werden, so dass die Schreibeklasse z.B. die Werte getMethodeA(1), getMethodeB(1), getMethodeA(2), getMethodeB(2), ... , getMethodeA(100), getMethodeB(100) ohne Clientbemühungen ausgeben kann.</p>
<p>Ist soetwas möglich? Wenn ja, wie geht das oder wo müsste ich mich da informieren?</p>
<p>Danke im Voraus,<br />
Mat.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1372820</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1372820</guid><dc:creator><![CDATA[Matrim]]></dc:creator><pubDate>Wed, 26 Sep 2007 08:26:44 GMT</pubDate></item><item><title><![CDATA[Reply to Funktionen als Parameter on Wed, 26 Sep 2007 08:27:50 GMT]]></title><description><![CDATA[<p>Google mal nach funktionzeiger;)</p>
<p>da kannst funktionen wie objekte/zeiger behandeln und je nach bedarf wechseln</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1372821</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1372821</guid><dc:creator><![CDATA[BorisDieKlinge]]></dc:creator><pubDate>Wed, 26 Sep 2007 08:27:50 GMT</pubDate></item><item><title><![CDATA[Reply to Funktionen als Parameter on Wed, 26 Sep 2007 08:45:36 GMT]]></title><description><![CDATA[<p>Google lieber nach &quot;Methodenzeiger&quot;, denn Funktionszeiger sind noch aus C und können nur für freie Funktionen und statische Methoden verwendet werden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1372848</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1372848</guid><dc:creator><![CDATA[TomasRiker]]></dc:creator><pubDate>Wed, 26 Sep 2007 08:45:36 GMT</pubDate></item><item><title><![CDATA[Reply to Funktionen als Parameter on Wed, 26 Sep 2007 08:49:39 GMT]]></title><description><![CDATA[<p>kannst auch hier im Forum &quot;googlen&quot;, hier gabs auch schon einige Threads zum Thema...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1372860</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1372860</guid><dc:creator><![CDATA[Airdamn]]></dc:creator><pubDate>Wed, 26 Sep 2007 08:49:39 GMT</pubDate></item><item><title><![CDATA[Reply to Funktionen als Parameter on Wed, 26 Sep 2007 08:52:27 GMT]]></title><description><![CDATA[<p><a href="http://www.function-pointer.org" rel="nofollow">www.function-pointer.org</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1372864</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1372864</guid><dc:creator><![CDATA[*D*Evil]]></dc:creator><pubDate>Wed, 26 Sep 2007 08:52:27 GMT</pubDate></item><item><title><![CDATA[Reply to Funktionen als Parameter on Wed, 26 Sep 2007 09:10:54 GMT]]></title><description><![CDATA[<p>Mit meinen stümperhaften Kenntnissen hätte ich eine abstrakte Basisklasse (als Interface) definiert und dann entsprechende Ableitungen für die gewünschten TypeHandler. Instanzierte Objekte der verschiedenen Handler dann in eine std::map gesteckt und bei Bedarf den entsprechenden aufgerufen.</p>
<p>Grüße...</p>
<p>Heiko</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1372891</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1372891</guid><dc:creator><![CDATA[bwbg]]></dc:creator><pubDate>Wed, 26 Sep 2007 09:10:54 GMT</pubDate></item><item><title><![CDATA[Reply to Funktionen als Parameter on Wed, 26 Sep 2007 09:23:15 GMT]]></title><description><![CDATA[<p>Das Problem bei Methodenzeigern ist, dass du ja das Objekt mit angeben musst, auf das sich die Funktion berufen soll.</p>
<p>Wenn du allerdings folgendes ist, hast du glück <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>
<pre><code class="language-cpp">class foo
{
public:
    foo(std::size_t id) : m_id(id) {}

protected:
    typedef bool (foo::*fnCall)(std::size_t, void*);  
    void register_call(std::size_t id, fnCall call) { m_func[id] = call; }
    bool handle_call(std::size_t id, void* data) { std::map&lt;std::size_t, fnCall&gt;::iterator it = m_func.find(id); return (it != it.end() ? (*this.*(*it).second)(m_id, data));

public:
    void show(std::ostream&amp; out) { out &lt;&lt; handle_call(10, &quot;Das ist ein Test&quot;); &lt;&lt; std::endl;

private: 
    std::map&lt;std::size_t, fnCall&gt; m_func;
    std::size_t m_id;
};
</code></pre>
<pre><code class="language-cpp">class bar : public foo
{
public:
    bar() : foo(1) { register_call(10, static_cast&lt;fnCall&gt;(&amp;bar::use_a)); }

protected:
   void use_a(std::size_t id, void* data)
   { std::cout &lt;&lt; id &lt;&lt; &quot; | &quot; &lt;&lt; static_cast&lt;const char*&gt;(data) &lt;&lt; std::endl; }
};
</code></pre>
<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /> Sieht bescheuert aus ... geht aber <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/1372910</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1372910</guid><dc:creator><![CDATA[*D*Evil]]></dc:creator><pubDate>Wed, 26 Sep 2007 09:23:15 GMT</pubDate></item></channel></rss>