<?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[Methoden Adresse für Vektortabelle]]></title><description><![CDATA[<p>Hallo,</p>
<p>in einem embedded Projekt habe ich mit C++ begonnen. In einer Klasse cUSART habe ich eine Methode cUSART::rx_isr(). Die Adresse für diese Methode muss in einer Vektortabelle eingetragen werden.</p>
<p>Das habe ich so versucht. Dabei ist das nur ein Auszug aus der Tabelle. default_isr wird für alle nicht benutzten Vektoren eingetragen:</p>
<p>...<br />
default_isr,<br />
&amp;term.rx_isr,<br />
default_isr,<br />
...</p>
<p>term ist eine Instanz von cUSART. Leider gibt mir der Compiler (IAR) diese Fehlermeldung aus:</p>
<p>Error[Pe300]: a pointer to a bound function may only be used to call the function.</p>
<p>Wie kann man so eine Methodenadresse richtig in eine Vektortabelle eintragen?</p>
<p>Grüße</p>
<p>BitConverter</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/279826/methoden-adresse-für-vektortabelle</link><generator>RSS for Node</generator><lastBuildDate>Mon, 24 Aug 2026 09:03:36 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/279826.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 04 Jan 2011 15:28:51 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Methoden Adresse für Vektortabelle on Tue, 04 Jan 2011 15:29:57 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>in einem embedded Projekt habe ich mit C++ begonnen. In einer Klasse cUSART habe ich eine Methode cUSART::rx_isr(). Die Adresse für diese Methode muss in einer Vektortabelle eingetragen werden.</p>
<p>Das habe ich so versucht. Dabei ist das nur ein Auszug aus der Tabelle. default_isr wird für alle nicht benutzten Vektoren eingetragen:</p>
<p>...<br />
default_isr,<br />
&amp;term.rx_isr,<br />
default_isr,<br />
...</p>
<p>term ist eine Instanz von cUSART. Leider gibt mir der Compiler (IAR) diese Fehlermeldung aus:</p>
<p>Error[Pe300]: a pointer to a bound function may only be used to call the function.</p>
<p>Wie kann man so eine Methodenadresse richtig in eine Vektortabelle eintragen?</p>
<p>Grüße</p>
<p>BitConverter</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2002301</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2002301</guid><dc:creator><![CDATA[BitConverter**]]></dc:creator><pubDate>Tue, 04 Jan 2011 15:29:57 GMT</pubDate></item><item><title><![CDATA[Reply to Methoden Adresse für Vektortabelle on Tue, 04 Jan 2011 16:06:19 GMT]]></title><description><![CDATA[<p>Die Adresse von rx_isr() bekommst du so:</p>
<pre><code class="language-cpp">&amp;cUSART::rx_isr
</code></pre>
<p>War das die Frage?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2002327</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2002327</guid><dc:creator><![CDATA[wx++]]></dc:creator><pubDate>Tue, 04 Jan 2011 16:06:19 GMT</pubDate></item><item><title><![CDATA[Reply to Methoden Adresse für Vektortabelle on Tue, 04 Jan 2011 16:17:37 GMT]]></title><description><![CDATA[<p>Hallo wx++,</p>
<p>danke für Deine Antwort. Ich brauche die Adresse von der Instanz &quot;term&quot; - also term.rx_isr(). Es gibt halt mehrere Instanzen von cUSART, z.B. auch eine Instanz usart_gps.</p>
<p>Grüße</p>
<p>BitConverter()</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2002332</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2002332</guid><dc:creator><![CDATA[BitConverter**]]></dc:creator><pubDate>Tue, 04 Jan 2011 16:17:37 GMT</pubDate></item><item><title><![CDATA[Reply to Methoden Adresse für Vektortabelle on Tue, 04 Jan 2011 16:27:45 GMT]]></title><description><![CDATA[<p>Die Adresse von <em>term</em> ist <em>&amp;term</em>. Die Adresse von <em>term::rx_isr</em> gibt es nicht, weil die Funktion nur einmal für alle Instanzen im Speicher liegt.<br />
Wahrscheinlich suchst du folgendes:</p>
<pre><code class="language-cpp">returntype (cUSART::*method)() = &amp;cUSART::rx_isr;
cUSART* object = &amp;term;

//aufruf:
(object-&gt;*method)();
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2002335</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2002335</guid><dc:creator><![CDATA[wx++]]></dc:creator><pubDate>Tue, 04 Jan 2011 16:27:45 GMT</pubDate></item><item><title><![CDATA[Reply to Methoden Adresse für Vektortabelle on Tue, 04 Jan 2011 16:31:37 GMT]]></title><description><![CDATA[<p>Was ist eine Vektortabelle?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2002340</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2002340</guid><dc:creator><![CDATA[Manni66]]></dc:creator><pubDate>Tue, 04 Jan 2011 16:31:37 GMT</pubDate></item><item><title><![CDATA[Reply to Methoden Adresse für Vektortabelle on Tue, 04 Jan 2011 17:56:03 GMT]]></title><description><![CDATA[<p>Grundsätzlich: Zur Speicherung und dem Aufruf einer nicht-statischen Methode, ist immer zusätzlich ein Instanzzeiger nötig. In C++ umgeht man dieses Problem gerne durch eine weitere Ebene der Indirektion (z.B. via std::tr1::function bzw. boost::function, das ein Funktionsobjekt erzeugt, das in einem solchen Fall intern beide Zeiger hält).</p>
<p>Es gibt keinen portablen Weg mit nur einem Zeiger für eine nicht-statische Methode auszukommen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2002374</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2002374</guid><dc:creator><![CDATA[asc]]></dc:creator><pubDate>Tue, 04 Jan 2011 17:56:03 GMT</pubDate></item><item><title><![CDATA[Reply to Methoden Adresse für Vektortabelle on Tue, 04 Jan 2011 17:54:29 GMT]]></title><description><![CDATA[<p>Was ist ein Instanzzaehler ... <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/2002375</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2002375</guid><dc:creator><![CDATA[knivil]]></dc:creator><pubDate>Tue, 04 Jan 2011 17:54:29 GMT</pubDate></item><item><title><![CDATA[Reply to Methoden Adresse für Vektortabelle on Tue, 04 Jan 2011 17:57:01 GMT]]></title><description><![CDATA[<p>knivil schrieb:</p>
<blockquote>
<p>Was ist ein Instanzzaehler ... <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>
</blockquote>
<p>Eine unsinnige Erfindung eines müden Geistes (Vermutlich steht der Zähler für die Schafe). Habs korrigiert <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/2002379</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2002379</guid><dc:creator><![CDATA[asc]]></dc:creator><pubDate>Tue, 04 Jan 2011 17:57:01 GMT</pubDate></item></channel></rss>