<?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[Funktionszeiger und Klassen]]></title><description><![CDATA[<p>Hi,</p>
<p>mein Problem ist func3, hier brauche ich eine Lösung...<br />
kann mir da jemand helfen ?</p>
<pre><code class="language-cpp">class a_class
{
   void (*callback)(char *value);

 public:
   a_class (void)
   {
   }

   void set_callback (void (*new_callback)(char *value))
   {
      this-&gt;callback = new_callback;
   }
};

void func1 (char* value);

class b_class
{
 public:
   char* text;
   a_class a;

   static void func2 (char* value)
   {
      this-&gt;text = value; // geht bekanntlicherwise nicht
   }

   void func3 (char* value)
   {
      this-&gt;text = value; // so soll es sein
   }

   b_class (void)
   {
      a.set_callback (func1); // funktioniert problemlos, ich hätte jedoch mein &quot;char* text&quot; gerne unter &quot;private:&quot;, was so nicht geht
      a.set_callback (b_class::func2); // funktioniert auch, ist nur dummerweise static, geht daher wiederum nicht
      a.set_callback (*this.*func3); // funktioniert leider nicht, hab ich irgendwo im Internet gefunden
   }
}b;

void func1 (char* value)
{
   b.text = value;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/125254/funktionszeiger-und-klassen</link><generator>RSS for Node</generator><lastBuildDate>Mon, 24 Aug 2026 10:38:32 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/125254.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 04 Nov 2005 22:41:10 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Funktionszeiger und Klassen on Tue, 08 Nov 2005 17:53:18 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>mein Problem ist func3, hier brauche ich eine Lösung...<br />
kann mir da jemand helfen ?</p>
<pre><code class="language-cpp">class a_class
{
   void (*callback)(char *value);

 public:
   a_class (void)
   {
   }

   void set_callback (void (*new_callback)(char *value))
   {
      this-&gt;callback = new_callback;
   }
};

void func1 (char* value);

class b_class
{
 public:
   char* text;
   a_class a;

   static void func2 (char* value)
   {
      this-&gt;text = value; // geht bekanntlicherwise nicht
   }

   void func3 (char* value)
   {
      this-&gt;text = value; // so soll es sein
   }

   b_class (void)
   {
      a.set_callback (func1); // funktioniert problemlos, ich hätte jedoch mein &quot;char* text&quot; gerne unter &quot;private:&quot;, was so nicht geht
      a.set_callback (b_class::func2); // funktioniert auch, ist nur dummerweise static, geht daher wiederum nicht
      a.set_callback (*this.*func3); // funktioniert leider nicht, hab ich irgendwo im Internet gefunden
   }
}b;

void func1 (char* value)
{
   b.text = value;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/908552</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/908552</guid><dc:creator><![CDATA[Schreck]]></dc:creator><pubDate>Tue, 08 Nov 2005 17:53:18 GMT</pubDate></item><item><title><![CDATA[Reply to Funktionszeiger und Klassen on Fri, 04 Nov 2005 23:14:10 GMT]]></title><description><![CDATA[<p>evtl. sowas in der art vlt.?:</p>
<pre><code class="language-cpp">template&lt;class C&gt;
class c_class {
		void (C::*callback)(char* val);
	public:
		c_class()
			{};

		void set_callback(void (C::*ncallback)(char*val))
			{
			callback=ncallback;
			};
};

class b_class {
		char* text;
		c_class&lt;b_class&gt; c;
		a_class a;
	public:
		void func3(char* value)
			{
			text=value;
			};

		b_class()
			{
			c.set_callback(func3);
			};
};
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/908559</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/908559</guid><dc:creator><![CDATA[Cpt. Tanga]]></dc:creator><pubDate>Fri, 04 Nov 2005 23:14:10 GMT</pubDate></item><item><title><![CDATA[Reply to Funktionszeiger und Klassen on Tue, 08 Nov 2005 17:52:02 GMT]]></title><description><![CDATA[<p>Hallo Cpt. Tanga,</p>
<p>leider funktioniert das Beispiel nicht so richtig ...<br />
Hier sind die Compilerfehler:</p>
<pre><code>g++ -Wall -c demo.cpp -o demo.o
demo.cpp: In constructor `b_class::b_class()':
demo.cpp:25: error: no matching function for call to `c_class&lt;b_class&gt;::set_callback(&lt;unknown type&gt;)'
demo.cpp:9: error: candidates are: void c_class&lt;C&gt;::set_callback(void (C::*)(char*)) [with C = b_class]
make: *** [demo.o] Fehler 1
</code></pre>
<p>Obiges Beispiel habe ich 1:1 übernommen jedoch ohne Zeile &quot;a_class a;&quot;</p>
<p>mfG<br />
Schreck</p>
]]></description><link>https://www.c-plusplus.net/forum/post/912037</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/912037</guid><dc:creator><![CDATA[Schreck]]></dc:creator><pubDate>Tue, 08 Nov 2005 17:52:02 GMT</pubDate></item><item><title><![CDATA[Reply to Funktionszeiger und Klassen on Tue, 08 Nov 2005 21:26:04 GMT]]></title><description><![CDATA[<p>habe den fehler leider nicht bemerkt (sowas kommt durch vc6 :)).<br />
(waer wohl ohne irc auch nicht selber auf die fehlerquelle gekommen):</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
using namespace std;

template&lt;class C&gt;
class c_class 
{
        void (C::*callback)(char* );
        C * obj;
    public:
        c_class():obj(0){};
        void set_callback(C * o , void (C::*ncallback)(char*))
        {
             obj = o;
             callback=ncallback;
        };
        void call( char * data )
        {  if(obj) ((*obj).*callback)(data); }
};

class b_class {
        char* text;
        c_class&lt;b_class&gt; c;
    public:
        void func3(char* value)
        {
            text=value;
            cout &lt;&lt; text &lt;&lt; endl;
        };

        b_class()
        {
            c.set_callback(this,&amp;b_class::func3);
        };
        void call(char * data)
        {
             c.call(data);
        }
};

int main()
{
	b_class b;
	char data[] = &quot;Hello World&quot;;
	b.call(data);
	return 0;
};
</code></pre>
<p>endfassung by evilissimo. -ist wohl auch in seinem sinn wenn ich das hier mit dazu poste (auch von ihm):<br />
<a href="http://developer.berlios.de/projects/callbackext" rel="nofollow">http://developer.berlios.de/projects/callbackext</a><br />
<a href="http://callbackext.berlios.de/" rel="nofollow">http://callbackext.berlios.de/</a></p>
<p>mfg.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/912260</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/912260</guid><dc:creator><![CDATA[Cpt. Tanga]]></dc:creator><pubDate>Tue, 08 Nov 2005 21:26:04 GMT</pubDate></item><item><title><![CDATA[Reply to Funktionszeiger und Klassen on Wed, 09 Nov 2005 06:34:26 GMT]]></title><description><![CDATA[<p>Naja endfassung ist gut, ich hab nur dran rumgeflickt bis es funktioniert hat *g*<br />
Wirklich toll ist es net<br />
<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/912388</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/912388</guid><dc:creator><![CDATA[evilissimo]]></dc:creator><pubDate>Wed, 09 Nov 2005 06:34:26 GMT</pubDate></item><item><title><![CDATA[Reply to Funktionszeiger und Klassen on Wed, 09 Nov 2005 07:47:34 GMT]]></title><description><![CDATA[<p>Danke</p>
<p><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="🙂"
    /> <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/912428</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/912428</guid><dc:creator><![CDATA[Schreck]]></dc:creator><pubDate>Wed, 09 Nov 2005 07:47:34 GMT</pubDate></item><item><title><![CDATA[Reply to Funktionszeiger und Klassen on Wed, 09 Nov 2005 18:43:47 GMT]]></title><description><![CDATA[<p>Hi evilissimo,</p>
<p>Dein calbackext ist soo gut, daß ich es gleich in meinem Prog verwende.<br />
Auch wenn es etwas Überdimmensioniert ist.... Dafür ist es LGPL und besteht<br />
nur aus .hpp Dateien.... (war innerhalb von ca. 10 min integriert)</p>
<p>Nochmals Danke</p>
]]></description><link>https://www.c-plusplus.net/forum/post/913127</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/913127</guid><dc:creator><![CDATA[Schreck]]></dc:creator><pubDate>Wed, 09 Nov 2005 18:43:47 GMT</pubDate></item></channel></rss>