<?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[Addresse einer Funktion eines Objektes]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe ein Problem mit folgendem:</p>
<p>Auch wenn der Code gerade mit Fehlern übersäht ist, lass ich ihn gerade einfach mal so stehen, denn man kann ganz gut erkennen was ich probiere, oder?</p>
<p>Ich versuche die address der Methode des Objektes zu übergeben...</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;cstring&gt;

using namespace std;
class addr
{
	public:

		void setPrint(char* s)
		{
			printf(&quot;%s&quot;, s);
		}
};

void funct(void methoder(void*))
{
	methoder(&quot;good morning&quot;);
}

int main (int argc, char * const argv[]) {

	Py_Initialize();

	addr* t = new addr;
	funct(&amp;t-&gt;setPrint);
    return 0;
}
</code></pre>
<p>Ich danke für jeden Tipp...</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/220641/addresse-einer-funktion-eines-objektes</link><generator>RSS for Node</generator><lastBuildDate>Tue, 06 Oct 2026 22:13:43 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/220641.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 19 Aug 2008 07:43:12 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Addresse einer Funktion eines Objektes on Tue, 19 Aug 2008 07:50:17 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe ein Problem mit folgendem:</p>
<p>Auch wenn der Code gerade mit Fehlern übersäht ist, lass ich ihn gerade einfach mal so stehen, denn man kann ganz gut erkennen was ich probiere, oder?</p>
<p>Ich versuche die address der Methode des Objektes zu übergeben...</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;cstring&gt;

using namespace std;
class addr
{
	public:

		void setPrint(char* s)
		{
			printf(&quot;%s&quot;, s);
		}
};

void funct(void methoder(void*))
{
	methoder(&quot;good morning&quot;);
}

int main (int argc, char * const argv[]) {

	Py_Initialize();

	addr* t = new addr;
	funct(&amp;t-&gt;setPrint);
    return 0;
}
</code></pre>
<p>Ich danke für jeden Tipp...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1567327</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1567327</guid><dc:creator><![CDATA[DonnerCobra]]></dc:creator><pubDate>Tue, 19 Aug 2008 07:50:17 GMT</pubDate></item><item><title><![CDATA[Reply to Addresse einer Funktion eines Objektes on Tue, 19 Aug 2008 07:45:29 GMT]]></title><description><![CDATA[<p>Jupp, kann man erkennen. Und nu?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1567330</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1567330</guid><dc:creator><![CDATA[Fellhuhn]]></dc:creator><pubDate>Tue, 19 Aug 2008 07:45:29 GMT</pubDate></item><item><title><![CDATA[Reply to Addresse einer Funktion eines Objektes on Tue, 19 Aug 2008 07:49:43 GMT]]></title><description><![CDATA[<p>addr::setPrint ist kein void(*)(void), fertig.<br />
Freie Funktionen und Instanzmethoden sind grundsätzlich unterschiedlich.<br />
Die Adresse einer Instanzmethode ist auch nicht instanzspezifisch.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1567332</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1567332</guid><dc:creator><![CDATA[MFK]]></dc:creator><pubDate>Tue, 19 Aug 2008 07:49:43 GMT</pubDate></item><item><title><![CDATA[Reply to Addresse einer Funktion eines Objektes on Tue, 19 Aug 2008 07:50:11 GMT]]></title><description><![CDATA[<p>DonnerCobra schrieb:</p>
<blockquote>
<p>...<br />
Ich danke für jeden Tipp...</p>
</blockquote>
<p>Na, dann will ich Dir mal einen geben: Beschreibe, welches Problem Du hast. :p <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 />
Ansonsten: zu &quot;pointer to member function&quot; gibt's eigentlich hier im Forum und auch sonst im Netz eine ganze Menge.</p>
<p>Gruß,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1567333</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1567333</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Tue, 19 Aug 2008 07:50:11 GMT</pubDate></item><item><title><![CDATA[Reply to Addresse einer Funktion eines Objektes on Tue, 19 Aug 2008 07:50:23 GMT]]></title><description><![CDATA[<p>lies mal: <a href="http://www.parashift.com/c++-faq-lite/pointers-to-members.html" rel="nofollow">http://www.parashift.com/c++-faq-lite/pointers-to-members.html</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1567334</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1567334</guid><dc:creator><![CDATA[Xantus]]></dc:creator><pubDate>Tue, 19 Aug 2008 07:50:23 GMT</pubDate></item><item><title><![CDATA[Reply to Addresse einer Funktion eines Objektes on Tue, 19 Aug 2008 08:30:52 GMT]]></title><description><![CDATA[<p>Hallo!</p>
<p>Ich sehe bisher immer nur dass überall alle möglichen Beispiele mit den Namespaces laufen, also Beispiel Addr::MemberFunction</p>
<p>Und das so etwas als Argument übergeben wird. Ist es nicht möglich das von Objekt zu Objekt unterschiedlich zu machen?</p>
<p>Ich möchte nämlich etwas in dem Objekt speichern und je nachdem was drinsteht, die Objekte einzeln ansprechen und extern die Member aufrufen, aber wie gesagt, je nachdem was die Objekte drinhaben. So wie es mir scheint, bezieht sich aber die Beispielpalette nur auf die ganzen Klassen selbst, und nicht auf Objekte, oder seh ich das falsch?</p>
<p>Danke für die tipps und Links.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1567359</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1567359</guid><dc:creator><![CDATA[DonnerCobra]]></dc:creator><pubDate>Tue, 19 Aug 2008 08:30:52 GMT</pubDate></item><item><title><![CDATA[Reply to Addresse einer Funktion eines Objektes on Tue, 19 Aug 2008 09:53:49 GMT]]></title><description><![CDATA[<p>DonnerCobra schrieb:</p>
<blockquote>
<p>Ich sehe bisher immer nur dass überall alle möglichen Beispiele mit den Namespaces laufen, also Beispiel Addr::MemberFunction</p>
<p>Und das so etwas als Argument übergeben wird. Ist es nicht möglich das von Objekt zu Objekt unterschiedlich zu machen?</p>
</blockquote>
<p>Nein. Wenn du 1000 Objekte einer Klasse erstellst, hast du ja schließlich nicht tausendmal die Methode im Speicher. Die Adresse der Methode ist für alle Objekte dieselbe. Du brauchst zum Aufruf immer das Objekt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1567429</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1567429</guid><dc:creator><![CDATA[MFK]]></dc:creator><pubDate>Tue, 19 Aug 2008 09:53:49 GMT</pubDate></item><item><title><![CDATA[Reply to Addresse einer Funktion eines Objektes on Tue, 19 Aug 2008 09:54:42 GMT]]></title><description><![CDATA[<p>Äh...was? Suchst du Infos zu Polymorphie? (Stichwort!)<br />
Übrigens sind das nicht direkt &quot;Namespaces&quot; (mit Keyword 'namespace'), sondern Klassen...und so werden nun einmal &quot;pointer to non-static member-functions&quot; deklariert.</p>
<p>suchst du eher eine Lösung mit Polymorphie?</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;string&gt;

// pure virtual class
class BasePrinter {
public:
    virtual ~BasePrinter() {}
    virtual void print(const std::string&amp; str) = 0;
};

class StandardPrinter: public BasePrinter {
public:
    void print(const std::string&amp; str) {
        // mit std::cout schreiben wir auf STDOUT
        std::cout &lt;&lt; str &lt;&lt; std::endl;
    }
};

class ErrorPrinter: public BasePrinter {
public:
    void print(const std::string&amp; str) {
        // mit std::cerr schreiben wir auf STDERR
        std::cerr &lt;&lt; str &lt;&lt; std::endl;
    }
};

// test
void func(BasePrinter* p)
{
    if(!p) return;
    p-&gt;print(&quot;meine ausgabe&quot;);
}

int main()
{
    BasePrinter* _out = new StandardPrinter();
    BasePrinter* _err = new ErrorPrinter();

    func(_out); // gibt &quot;meine ausgabe&quot; auf STDOUT aus
    func(_err); // gibt &quot;meine ausgabe&quot; auf STDERR aus

    delete _out;
    delete _err;
}
</code></pre>
<p>meinst du so etwas?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1567432</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1567432</guid><dc:creator><![CDATA[Xantus]]></dc:creator><pubDate>Tue, 19 Aug 2008 09:54:42 GMT</pubDate></item><item><title><![CDATA[Reply to Addresse einer Funktion eines Objektes on Tue, 19 Aug 2008 15:06:50 GMT]]></title><description><![CDATA[<p>Hi!</p>
<p>Ich danke dir, das ist echt ein super Codeschnippsel zum verstehen.</p>
<p>Ich suche nur noch die Möglichkeit direkt die Adresse von der Methode printf zu übergeben. Geht das irgendwie?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1567671</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1567671</guid><dc:creator><![CDATA[DonnerCobra]]></dc:creator><pubDate>Tue, 19 Aug 2008 15:06:50 GMT</pubDate></item><item><title><![CDATA[Reply to Addresse einer Funktion eines Objektes on Tue, 19 Aug 2008 15:37:18 GMT]]></title><description><![CDATA[<p>DonnerCobra schrieb:</p>
<blockquote>
<p>Ich suche nur noch die Möglichkeit direkt die Adresse von der Methode printf zu übergeben. Geht das irgendwie?</p>
</blockquote>
<pre><code class="language-cpp">int (*f) (const char* , ...);
f = &amp;std::printf;
</code></pre>
<p>Macht aber nicht viel Sinn, wenn du ja die Funktion schon kennst, die du aufrufen willst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1567700</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1567700</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Tue, 19 Aug 2008 15:37:18 GMT</pubDate></item><item><title><![CDATA[Reply to Addresse einer Funktion eines Objektes on Tue, 19 Aug 2008 15:54:13 GMT]]></title><description><![CDATA[<p>Hi!</p>
<p>In dem Falle bräuchte ich aber die Methode des Objektes</p>
<p>Und da meckert der Compiler rum wenn ich schreibe &amp;myclass-&gt;mymethod<br />
und das übergeben möchte <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":-/"
      alt="😕"
    /> hm...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1567719</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1567719</guid><dc:creator><![CDATA[DonnerCobra]]></dc:creator><pubDate>Tue, 19 Aug 2008 15:54:13 GMT</pubDate></item><item><title><![CDATA[Reply to Addresse einer Funktion eines Objektes on Tue, 19 Aug 2008 17:10:30 GMT]]></title><description><![CDATA[<p>DonnerCobra schrieb:</p>
<blockquote>
<p>Hi!</p>
<p>In dem Falle bräuchte ich aber die Methode des Objektes</p>
<p>Und da meckert der Compiler rum wenn ich schreibe &amp;myclass-&gt;mymethod<br />
und das übergeben möchte <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":-/"
      alt="😕"
    /> hm...</p>
</blockquote>
<p>lies die links.</p>
<p>&amp;myclass::mymethod</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1567762</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1567762</guid><dc:creator><![CDATA[Shade Of Mine]]></dc:creator><pubDate>Tue, 19 Aug 2008 17:10:30 GMT</pubDate></item><item><title><![CDATA[Reply to Addresse einer Funktion eines Objektes on Tue, 19 Aug 2008 17:25:04 GMT]]></title><description><![CDATA[<p>Dazu hatte ich bereits was geschrieben!</p>
<p>DonnerCobra schrieb:</p>
<blockquote>
<p>Hallo!</p>
<p>Ich sehe bisher immer nur dass überall alle möglichen Beispiele mit den Namespaces laufen, also Beispiel Addr::MemberFunction</p>
<p>Und das so etwas als Argument übergeben wird. Ist es nicht möglich das von Objekt zu Objekt unterschiedlich zu machen?</p>
<p>Ich möchte nämlich etwas in dem Objekt speichern und je nachdem was drinsteht, die Objekte einzeln ansprechen und extern die Member aufrufen, aber wie gesagt, je nachdem was die Objekte drinhaben. So wie es mir scheint, bezieht sich aber die Beispielpalette nur auf die ganzen Klassen selbst, und nicht auf Objekte, oder seh ich das falsch?</p>
<p>Danke für die tipps und Links.</p>
</blockquote>
<p>MFK hatte aber einen sehr guten Hinweis. Danke dir.. gut zu wissen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1567770</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1567770</guid><dc:creator><![CDATA[DonnerCobra]]></dc:creator><pubDate>Tue, 19 Aug 2008 17:25:04 GMT</pubDate></item><item><title><![CDATA[Reply to Addresse einer Funktion eines Objektes on Tue, 19 Aug 2008 18:08:31 GMT]]></title><description><![CDATA[<p>wenn du das Klassenunabhängig machen willst, kannst du ja Templates verwenden:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;

class Standard
{
public:
    void print(const char* str) {
        std::cout &lt;&lt; str &lt;&lt; std::endl;
    }
};

class Error
{
public:
    void print(const char* str) {
        std::cerr &lt;&lt; str &lt;&lt; std::endl;
    }
};

template&lt;typename T&gt;
void funct(void (T::*member)(const char*))
{
    T obj; // objekt erzeugen
    (obj.*member)(&quot;hallo welt&quot;);
}

int main()
{
    funct(&amp;Standard::print);
    funct(&amp;Error::print);
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1567784</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1567784</guid><dc:creator><![CDATA[Xantus]]></dc:creator><pubDate>Tue, 19 Aug 2008 18:08:31 GMT</pubDate></item><item><title><![CDATA[Reply to Addresse einer Funktion eines Objektes on Tue, 19 Aug 2008 20:10:43 GMT]]></title><description><![CDATA[<p>ich schätze er hätte gern einen &quot;bound member function pointer&quot; gehabt der dann kompatibel mit einem &quot;free function pointer&quot; ist.<br />
nen automatisch generierten &quot;thunk&quot; quasi.</p>
<p>das was in C# oder C++/CLI delegates machen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1567853</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1567853</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Tue, 19 Aug 2008 20:10:43 GMT</pubDate></item><item><title><![CDATA[Reply to Addresse einer Funktion eines Objektes on Tue, 19 Aug 2008 20:28:53 GMT]]></title><description><![CDATA[<p>hrm...da fällt mir noch boost::function ( <a href="http://www.boost.org/doc/libs/1_36_0/doc/html/function.html" rel="nofollow">http://www.boost.org/doc/libs/1_36_0/doc/html/function.html</a> ) ein, sowie<br />
<a href="http://www.codeproject.com/KB/cpp/FastDelegate.aspx" rel="nofollow">http://www.codeproject.com/KB/cpp/FastDelegate.aspx</a> und<br />
<a href="http://www.codeproject.com/KB/cpp/fd.aspx" rel="nofollow">http://www.codeproject.com/KB/cpp/fd.aspx</a></p>
<p>vielleicht ist ja was brauchbares dabei <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/1567861</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1567861</guid><dc:creator><![CDATA[Xantus]]></dc:creator><pubDate>Tue, 19 Aug 2008 20:28:53 GMT</pubDate></item><item><title><![CDATA[Reply to Addresse einer Funktion eines Objektes on Tue, 19 Aug 2008 21:06:17 GMT]]></title><description><![CDATA[<p>Hi! Ich danke für die Hilfe.. <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/1567878</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1567878</guid><dc:creator><![CDATA[DonnerCobra]]></dc:creator><pubDate>Tue, 19 Aug 2008 21:06:17 GMT</pubDate></item></channel></rss>