<?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[Null-Zeiger bei Funktionen]]></title><description><![CDATA[<p>Hallo</p>
<p>Ich habe ein kleine Klasse mit dem Namen ButtonToClick. Diese Klasse hat eine Initfunktion:</p>
<pre><code class="language-cpp">void ButtonToClick::Init(const std::string&amp; Caption, unsigned int PosX, unsigned int PosY, boost::function&lt;unsigned int(std::vector&lt;Cube&gt;&amp; Cubes)&gt; Function, unsigned int Position)
{
	CaptionText.Init(&quot;fonts/FreeSansBold.ttf&quot;,22);
	this-&gt;Caption = Caption;
	this-&gt;PosX = PosX;
	this-&gt;PosY = PosY;
	OwnRect.x = PosX-20;
	OwnRect.y = PosY-5;
	OwnRect.w = CaptionText.GetLengthInPixel(Caption) + 10;
	OwnRect.h = CaptionText.GetTextHeight()+5;
	this-&gt;Function = Function;
	this-&gt;Position = Position;
}
</code></pre>
<p>Ich rufe diese Funktion so auf:</p>
<pre><code class="language-cpp">ButtonsToClick[0].Init(&quot;Einsen&quot;,250,230,Func[0],0);
</code></pre>
<p>Func[0] soll also der Zeiger auf die Funktion sein, die aufgerufen werden soll, wenn ich auf den &quot;Button&quot; klicke.<br />
Das Array der Zeiger auf Funktion wird so initialisiert:</p>
<pre><code class="language-cpp">ButtonsToClick[0].Init(&quot;Einsen&quot;,250,230,Func[0],0);
ButtonsToClick[1].Init(&quot;Zweien&quot;,250,280,Func[1],1);

...
</code></pre>
<p>Nun ist das Problem, dass wenn ich die Memberfunktion von der Klasse ButtonToClick aufrufe der Zeiger auf die Funktion immer NULL ist. Ich bekomme eine exception und das Programm beendet sich.<br />
Vieleicht stehe ich ja mal wieder auf dem Schlauch, oder ich verwende die boost-Funktionszeiger falsch. Ich würde mich über Ideen sehr freuen.</p>
<p>chrische</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/150015/null-zeiger-bei-funktionen</link><generator>RSS for Node</generator><lastBuildDate>Sat, 05 Sep 2026 11:20:46 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/150015.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 12 Jun 2006 11:19:46 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Null-Zeiger bei Funktionen on Mon, 12 Jun 2006 11:19:46 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>Ich habe ein kleine Klasse mit dem Namen ButtonToClick. Diese Klasse hat eine Initfunktion:</p>
<pre><code class="language-cpp">void ButtonToClick::Init(const std::string&amp; Caption, unsigned int PosX, unsigned int PosY, boost::function&lt;unsigned int(std::vector&lt;Cube&gt;&amp; Cubes)&gt; Function, unsigned int Position)
{
	CaptionText.Init(&quot;fonts/FreeSansBold.ttf&quot;,22);
	this-&gt;Caption = Caption;
	this-&gt;PosX = PosX;
	this-&gt;PosY = PosY;
	OwnRect.x = PosX-20;
	OwnRect.y = PosY-5;
	OwnRect.w = CaptionText.GetLengthInPixel(Caption) + 10;
	OwnRect.h = CaptionText.GetTextHeight()+5;
	this-&gt;Function = Function;
	this-&gt;Position = Position;
}
</code></pre>
<p>Ich rufe diese Funktion so auf:</p>
<pre><code class="language-cpp">ButtonsToClick[0].Init(&quot;Einsen&quot;,250,230,Func[0],0);
</code></pre>
<p>Func[0] soll also der Zeiger auf die Funktion sein, die aufgerufen werden soll, wenn ich auf den &quot;Button&quot; klicke.<br />
Das Array der Zeiger auf Funktion wird so initialisiert:</p>
<pre><code class="language-cpp">ButtonsToClick[0].Init(&quot;Einsen&quot;,250,230,Func[0],0);
ButtonsToClick[1].Init(&quot;Zweien&quot;,250,280,Func[1],1);

...
</code></pre>
<p>Nun ist das Problem, dass wenn ich die Memberfunktion von der Klasse ButtonToClick aufrufe der Zeiger auf die Funktion immer NULL ist. Ich bekomme eine exception und das Programm beendet sich.<br />
Vieleicht stehe ich ja mal wieder auf dem Schlauch, oder ich verwende die boost-Funktionszeiger falsch. Ich würde mich über Ideen sehr freuen.</p>
<p>chrische</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1076165</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1076165</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Mon, 12 Jun 2006 11:19:46 GMT</pubDate></item><item><title><![CDATA[Reply to Null-Zeiger bei Funktionen on Mon, 12 Jun 2006 14:27:02 GMT]]></title><description><![CDATA[<p>Mit Boost kenne ich mich zwar nicht aus, aber wieso machst du es nicht einfach mit normalen Funktionszeigern? <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=":confused:"
      alt="😕"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1076274</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1076274</guid><dc:creator><![CDATA[Phoemuex]]></dc:creator><pubDate>Mon, 12 Jun 2006 14:27:02 GMT</pubDate></item><item><title><![CDATA[Reply to Null-Zeiger bei Funktionen on Mon, 12 Jun 2006 19:36:50 GMT]]></title><description><![CDATA[<p>Du machst eigentlich alles richtig, ich würde sagen der Fehler liegt beim Func-Array. Bau mal ein paar asserts auf Nullzeigercheck ein oder versuch's mit dem Debugger.</p>
<p>mfg.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1076540</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1076540</guid><dc:creator><![CDATA[joomoo]]></dc:creator><pubDate>Mon, 12 Jun 2006 19:36:50 GMT</pubDate></item></channel></rss>