<?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[Variable im Funktionsnamen]]></title><description><![CDATA[<p>Hi,</p>
<p>wieder ein Problem.</p>
<p>Gibt es eine Möglichkeit, folgenes in C++ zu realisieren? (pseudocode)</p>
<pre><code class="language-cpp">int funk_A () {
 tu_was;
}

int main () {

  var test = &quot;A&quot;  
  funk_{test}();

}
</code></pre>
<p>oder auch:</p>
<pre><code class="language-cpp">class Klasse_A {

  ...

}

int main () {

  var test = &quot;A&quot;

  Klasse_{test} klasse;

  klasse-&gt;foobar();

}
</code></pre>
<p>ich habe keine Idee, wie man sowas machen könnte <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/topic/163884/variable-im-funktionsnamen</link><generator>RSS for Node</generator><lastBuildDate>Sun, 13 Sep 2026 14:25:26 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/163884.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 02 Nov 2006 19:25:28 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Variable im Funktionsnamen on Thu, 02 Nov 2006 19:25:28 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>wieder ein Problem.</p>
<p>Gibt es eine Möglichkeit, folgenes in C++ zu realisieren? (pseudocode)</p>
<pre><code class="language-cpp">int funk_A () {
 tu_was;
}

int main () {

  var test = &quot;A&quot;  
  funk_{test}();

}
</code></pre>
<p>oder auch:</p>
<pre><code class="language-cpp">class Klasse_A {

  ...

}

int main () {

  var test = &quot;A&quot;

  Klasse_{test} klasse;

  klasse-&gt;foobar();

}
</code></pre>
<p>ich habe keine Idee, wie man sowas machen könnte <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1167230</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1167230</guid><dc:creator><![CDATA[Maddes]]></dc:creator><pubDate>Thu, 02 Nov 2006 19:25:28 GMT</pubDate></item><item><title><![CDATA[Reply to Variable im Funktionsnamen on Thu, 02 Nov 2006 19:57:25 GMT]]></title><description><![CDATA[<p>IMHO gibt es keine Funktionsnamen mehr in einem compilat.</p>
<p>Eventuell hilft Dir das Fabrikmuster weiter.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1167246</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1167246</guid><dc:creator><![CDATA[Knuddlbaer]]></dc:creator><pubDate>Thu, 02 Nov 2006 19:57:25 GMT</pubDate></item><item><title><![CDATA[Reply to Variable im Funktionsnamen on Thu, 02 Nov 2006 19:57:44 GMT]]></title><description><![CDATA[<p>Wenn du verrätst was du erreichen willst kann man dir bestimmt weiterhelfen...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1167247</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1167247</guid><dc:creator><![CDATA[finix]]></dc:creator><pubDate>Thu, 02 Nov 2006 19:57:44 GMT</pubDate></item><item><title><![CDATA[Reply to Variable im Funktionsnamen on Thu, 02 Nov 2006 20:02:43 GMT]]></title><description><![CDATA[<p>also es geht darum, dass ich mit dlopen etc. &quot;Module&quot; lade. in diesen Modulen soll es Funktionen geben, die</p>
<p>Modul_A_foo(); // aus Modul_A.so<br />
Modul_B_foo(); // aus Modul_B.so<br />
Modul_C_foo(); // aus Modul_C.so</p>
<p>heisen.</p>
<p>und die möcht ich nun der Reihe nach aufrufen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1167251</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1167251</guid><dc:creator><![CDATA[Maddes]]></dc:creator><pubDate>Thu, 02 Nov 2006 20:02:43 GMT</pubDate></item><item><title><![CDATA[Reply to Variable im Funktionsnamen on Thu, 02 Nov 2006 20:07:27 GMT]]></title><description><![CDATA[<p>sind die module von dir? dann lass die module alle von derselben basisklasse erben, die die entsprechenden methoden pure virtual bereitstellt. dann ists wurst, wie die klasse heisst, wird einfach über die basisklasse referenziert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1167256</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1167256</guid><dc:creator><![CDATA[thordk]]></dc:creator><pubDate>Thu, 02 Nov 2006 20:07:27 GMT</pubDate></item><item><title><![CDATA[Reply to Variable im Funktionsnamen on Thu, 02 Nov 2006 20:16:21 GMT]]></title><description><![CDATA[<blockquote>
<p>sind die module von dir?</p>
</blockquote>
<p>ja</p>
<blockquote>
<p>dann lass die module alle von derselben basisklasse erben, die die entsprechenden methoden pure virtual bereitstellt. dann ists wurst, wie die klasse heisst, wird einfach über die basisklasse referenziert.</p>
</blockquote>
<p>das musst du mir genauer erklären <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="😕"
    /></p>
<p>das Wichtige ist, dass eben immer eine <strong>bestimmte</strong> Funktion aus <strong>allen</strong> Modulen aufgerufen wird.</p>
<pre><code>if ereignis == bla
{
  Modul_A_foo();
  Modul_B_foo();
  Modul_C_foo();
}
else if ereignis == lala
{
  Modul_A_go();
  Modul_B_go();
  Modul_C_go();
}
</code></pre>
<p>habe mir schon geacht, aus jedem Modul eine Klasse zu Bilden, also</p>
<pre><code>class Modul_A 
{
  int foo();
  int go();
}
class Modul_B 
{
  int foo();
  int go();
}
class Modul_C
{
  int foo();
  int go();
}
</code></pre>
<p>aber leider komm ich da auch nicht weiter <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1167264</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1167264</guid><dc:creator><![CDATA[Maddes]]></dc:creator><pubDate>Thu, 02 Nov 2006 20:16:21 GMT</pubDate></item><item><title><![CDATA[Reply to Variable im Funktionsnamen on Thu, 02 Nov 2006 20:31:23 GMT]]></title><description><![CDATA[<p>war quatsch was ich da geschrieben hab Oo erstmal richtig lesen, dann schreiben ^^</p>
<p>hm, kommst nich mit dlsym an die funktionen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1167280</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1167280</guid><dc:creator><![CDATA[thordk]]></dc:creator><pubDate>Thu, 02 Nov 2006 20:31:23 GMT</pubDate></item><item><title><![CDATA[Reply to Variable im Funktionsnamen on Thu, 02 Nov 2006 20:38:09 GMT]]></title><description><![CDATA[<blockquote>
<p>hm, kommst nich mit dlsym an die funktionen?</p>
</blockquote>
<p>doch, aber was nützt mir das? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1167284</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1167284</guid><dc:creator><![CDATA[Maddes]]></dc:creator><pubDate>Thu, 02 Nov 2006 20:38:09 GMT</pubDate></item><item><title><![CDATA[Reply to Variable im Funktionsnamen on Thu, 02 Nov 2006 20:51:48 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">#include &lt;iostream&gt;

int foo(int bar)
{
   return 42 + bar;
}

int main()
{
    int (*handle)(int);
    handle = foo;

    int bar = (*handle)(23);

    std::cout &lt;&lt; bar &lt;&lt; std::endl;
}
</code></pre>
<p>dlsym sucht dir die adresse zu ner funktion raus, die du als string übergeben kannst. den pointer kannst dir zurechtbiegen und entsprechend verwenden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1167289</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1167289</guid><dc:creator><![CDATA[thordk]]></dc:creator><pubDate>Thu, 02 Nov 2006 20:51:48 GMT</pubDate></item><item><title><![CDATA[Reply to Variable im Funktionsnamen on Thu, 02 Nov 2006 21:26:08 GMT]]></title><description><![CDATA[<p>hi,</p>
<p>geht das auch mit klassen?</p>
<p>also</p>
<pre><code>class foobar {
  ...
  int bla() {
    ...
  }
}

int main()
{
    ????
    handle = foobar;

    (*handle) test;
    test.bla();

}
</code></pre>
<p>das wär perfekt!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1167303</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1167303</guid><dc:creator><![CDATA[Maddes]]></dc:creator><pubDate>Thu, 02 Nov 2006 21:26:08 GMT</pubDate></item><item><title><![CDATA[Reply to Variable im Funktionsnamen on Fri, 03 Nov 2006 09:27:04 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>Lese doch mal was zum Thema Polymorphie bzw. virtuelle Methoden. Das sollte dir hier helfen.<br />
<a href="http://tutorial.schornboeck.net/virtual.htm" rel="nofollow">http://tutorial.schornboeck.net/virtual.htm</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1167506</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1167506</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Fri, 03 Nov 2006 09:27:04 GMT</pubDate></item><item><title><![CDATA[Reply to Variable im Funktionsnamen on Sat, 04 Nov 2006 11:13:08 GMT]]></title><description><![CDATA[<blockquote>
<p>Hallo,</p>
<p>Lese doch mal was zum Thema Polymorphie bzw. virtuelle Methoden. Das sollte dir hier helfen.<br />
<a href="http://tutorial.schornboeck.net/virtual.htm" rel="nofollow">http://tutorial.schornboeck.net/virtual.htm</a></p>
</blockquote>
<p>Hey, danke für den Link!<br />
Klappt mit jetzt!</p>
<p>Andere Frage,</p>
<p>Brauche etwas in dieser Form:</p>
<p>array[0][&quot;foo&quot;] = &quot;bla&quot;;<br />
array[0][&quot;bar&quot;] = &quot;bla&quot;;<br />
array[1][&quot;foo&quot;] = &quot;bla&quot;;<br />
array[1][&quot;bar&quot;] = &quot;bla&quot;;<br />
array[1][&quot;go&quot;] = &quot;bla&quot;;<br />
array[2][&quot;la&quot;] = &quot;bla&quot;;</p>
<p>also<br />
array[ int ] [ string ] = string</p>
<p>Habs mit Maps versucht, aber bekomme die Definition nicht richtig hin. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1168140</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1168140</guid><dc:creator><![CDATA[Maddes]]></dc:creator><pubDate>Sat, 04 Nov 2006 11:13:08 GMT</pubDate></item><item><title><![CDATA[Reply to Variable im Funktionsnamen on Sat, 04 Nov 2006 11:17:37 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">std::vector&lt;std::map&lt;std::string, std::string&gt; &gt; array;
</code></pre>
<p>?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1168144</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1168144</guid><dc:creator><![CDATA[Der Meister]]></dc:creator><pubDate>Sat, 04 Nov 2006 11:17:37 GMT</pubDate></item><item><title><![CDATA[Reply to Variable im Funktionsnamen on Sat, 04 Nov 2006 11:49:26 GMT]]></title><description><![CDATA[<p>ja, so hatt ichs auch schon probiert, aber beim aufruf:</p>
<pre><code>std::vector&lt;std::map&lt;std::string, std::string&gt; &gt; array;

		 array[0][&quot;bla&quot;] = &quot;foo&quot;;
</code></pre>
<p>bekomm ich immer einen Speicherzugriffsfehler.<br />
Wenn ich die zweite Zeile rausnehme, gehts.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1168163</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1168163</guid><dc:creator><![CDATA[Maddes]]></dc:creator><pubDate>Sat, 04 Nov 2006 11:49:26 GMT</pubDate></item><item><title><![CDATA[Reply to Variable im Funktionsnamen on Sat, 04 Nov 2006 12:00:53 GMT]]></title><description><![CDATA[<p>Er möchte ein Schlüssel-Wert-Paar als Key. 0 kommt bei dem Beispiel mehrfach vor, allerdings kommt der String nur einmal vor, da sollte es wohl eher so aussehen:</p>
<pre><code class="language-cpp">std::map&lt;std::pair&lt;int, std::string&gt;, std::string&gt; mMap;
// Beispiel:
mMap[std::make_pair(0, &quot;foo&quot;)] = &quot;bla&quot;;
mMap[std::make_pair(0, &quot;bar&quot;)] = &quot;blubb&quot;;
cout &lt;&lt; mMap[std::make_pair(0, &quot;foo&quot;)] &lt;&lt; endl;
cout &lt;&lt; mMap[std::make_pair(0, &quot;bar&quot;)] &lt;&lt; endl;
</code></pre>
<p>Wenn der Key mehrfach vorkommen soll (also, dass auch der string des pairs mehrfach gleich wäre), dann ist ne multimap zu nehmen.</p>
<p>Edit:<br />
Oder so wohl doch besser so ^^:</p>
<pre><code class="language-cpp">std::vector&lt;std::map&lt;std::string, std::string&gt; &gt; array;
array.push_back(std::map&lt;std::string, std::string&gt;());
array[0].insert(make_pair(&quot;foo&quot;, &quot;bla&quot;));
array[0].insert(make_pair(&quot;bar&quot;, &quot;blubb&quot;));
cout &lt;&lt; array[0][&quot;foo&quot;] &lt;&lt; endl;
</code></pre>
<p>Du musst immer eine map pushen bevor du diese dann benutzen kannst und über einen Index darauf zugreifen kannst.</p>
<p>Greetz</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1168167</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1168167</guid><dc:creator><![CDATA[Vellas]]></dc:creator><pubDate>Sat, 04 Nov 2006 12:00:53 GMT</pubDate></item><item><title><![CDATA[Reply to Variable im Funktionsnamen on Sat, 04 Nov 2006 11:55:34 GMT]]></title><description><![CDATA[<p>Maddes schrieb:</p>
<blockquote>
<p>bekomm ich immer einen Speicherzugriffsfehler.<br />
Wenn ich die zweite Zeile rausnehme, gehts.</p>
</blockquote>
<p>Klar, weil dein array zunächst leer ist. Ein Aufruf von array.resize(gewuenschte_groesse); vor dem Zugriff sollte das Problem lösen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1168169</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1168169</guid><dc:creator><![CDATA[Der Meister]]></dc:creator><pubDate>Sat, 04 Nov 2006 11:55:34 GMT</pubDate></item><item><title><![CDATA[Reply to Variable im Funktionsnamen on Sat, 04 Nov 2006 12:03:09 GMT]]></title><description><![CDATA[<blockquote>
<p>array.resize(gewuenschte_groesse)</p>
</blockquote>
<p>AAAAAAAAAAAHHHHHHHHHHHHHHHHHHHHHHHHHHHHH!!!!!!!!!</p>
<p>Tausend Dank! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /><br />
Werd mich doch noch ein wenig mit Vectoren/Maps beschäftigen müssen <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/1168178</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1168178</guid><dc:creator><![CDATA[Maddes]]></dc:creator><pubDate>Sat, 04 Nov 2006 12:03:09 GMT</pubDate></item><item><title><![CDATA[Reply to Variable im Funktionsnamen on Sat, 04 Nov 2006 12:06:00 GMT]]></title><description><![CDATA[<p>Man kann die Größe auch gleich im Konstruktor angeben, dann kann man sich das resize ersparen:</p>
<pre><code class="language-cpp">std::vector&lt;std::map&lt;std::string, std::string&gt; &gt; array(10);
array[0] = std::map&lt;std::string, std::string&gt;();
array[0].insert(make_pair(&quot;foo&quot;, &quot;bla&quot;));
</code></pre>
<p>Greetz</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1168180</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1168180</guid><dc:creator><![CDATA[Vellas]]></dc:creator><pubDate>Sat, 04 Nov 2006 12:06:00 GMT</pubDate></item><item><title><![CDATA[Reply to Variable im Funktionsnamen on Sat, 04 Nov 2006 12:08:38 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">array[0] = std::map&lt;std::string, std::string&gt;();
</code></pre>
<p>Ist diese Zweile wirklich nötig? Sollte nicht schon der Konstruktor von std::vector dafür sorgen, dass die Konstruktoren der Elemente aufgerufen werden?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1168182</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1168182</guid><dc:creator><![CDATA[Der Meister]]></dc:creator><pubDate>Sat, 04 Nov 2006 12:08:38 GMT</pubDate></item><item><title><![CDATA[Reply to Variable im Funktionsnamen on Sat, 04 Nov 2006 12:08:48 GMT]]></title><description><![CDATA[<p>ah okay.<br />
gut zu wissen.</p>
<p>da ich bei der initialisierung aber die größe noch nicht weiss, ist resize schon genau das richtige <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/1168183</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1168183</guid><dc:creator><![CDATA[Maddes]]></dc:creator><pubDate>Sat, 04 Nov 2006 12:08:48 GMT</pubDate></item><item><title><![CDATA[Reply to Variable im Funktionsnamen on Sat, 04 Nov 2006 12:13:13 GMT]]></title><description><![CDATA[<p>Der Meister schrieb:</p>
<blockquote>
<pre><code class="language-cpp">array[0] = std::map&lt;std::string, std::string&gt;();
</code></pre>
<p>Ist diese Zweile wirklich nötig? Sollte nicht schon der Konstruktor von std::vector dafür sorgen, dass die Konstruktoren der Elemente aufgerufen werden?</p>
</blockquote>
<p>Jupp, wenn man die Größe angegeben hat ist die Zeile überflüssig. Da werden in meinem Beispiel 10 leere maps angelegt.<br />
Bei der push_back-Methode, die ich auch einem ständigen resize evtl. bevorzugen würde, muss einmal eine map gepushed werden, da ist ja auch noch nichts initialisiert.</p>
<p>Greetz</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1168190</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1168190</guid><dc:creator><![CDATA[Vellas]]></dc:creator><pubDate>Sat, 04 Nov 2006 12:13:13 GMT</pubDate></item></channel></rss>