<?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[Eine Designfrage - Funktion oder Funktor]]></title><description><![CDATA[<p>Hallo Forum,</p>
<p>Ich möchte eine Gruppe von Algorithmen zur Turnierauslosung schreiben. Die Signatur aller dieser Algorithmen ist absolut identisch; das habe ich mir so gedacht, damit ich später per <code>std::tr1::function</code> darauf zugreifen kann, ohne tatsächlich zu wissen, welcher Algorithmus nun gerade verwendet wird. Wenn ich später einmal eine GUI dazu schreibe (was ich schon fest vorhabe), dann wäre es für den User aber dennoch wissenswert, welcher Algorithmus gerade verwendet wird, und was er für Eigenschaften hat.</p>
<p>Wie würdet ihr eine Gruppe von Algorithmen realisieren, die a) alle die selbe Signatur haben und die b) Informationen über sich selbst bereitstellen sollen?<br />
Meine Denkansätze sind die hier:</p>
<ul>
<li>Funktoren, die neben dem <code>op()</code> weitere Methoden wie <code>getName()</code> usw. haben</li>
<li>Funktionen (wobei ich hier noch keine Idee habe, wie ich denen Informationen über sich mit auf den Weg geben soll)</li>
</ul>
<p>Was sagt ihr dazu? Ist der Weg über die Funktoren der &quot;bessere&quot;?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/266027/eine-designfrage-funktion-oder-funktor</link><generator>RSS for Node</generator><lastBuildDate>Thu, 03 Sep 2026 15:44:21 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/266027.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 02 May 2010 21:27:44 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Eine Designfrage - Funktion oder Funktor on Sun, 02 May 2010 21:27:44 GMT]]></title><description><![CDATA[<p>Hallo Forum,</p>
<p>Ich möchte eine Gruppe von Algorithmen zur Turnierauslosung schreiben. Die Signatur aller dieser Algorithmen ist absolut identisch; das habe ich mir so gedacht, damit ich später per <code>std::tr1::function</code> darauf zugreifen kann, ohne tatsächlich zu wissen, welcher Algorithmus nun gerade verwendet wird. Wenn ich später einmal eine GUI dazu schreibe (was ich schon fest vorhabe), dann wäre es für den User aber dennoch wissenswert, welcher Algorithmus gerade verwendet wird, und was er für Eigenschaften hat.</p>
<p>Wie würdet ihr eine Gruppe von Algorithmen realisieren, die a) alle die selbe Signatur haben und die b) Informationen über sich selbst bereitstellen sollen?<br />
Meine Denkansätze sind die hier:</p>
<ul>
<li>Funktoren, die neben dem <code>op()</code> weitere Methoden wie <code>getName()</code> usw. haben</li>
<li>Funktionen (wobei ich hier noch keine Idee habe, wie ich denen Informationen über sich mit auf den Weg geben soll)</li>
</ul>
<p>Was sagt ihr dazu? Ist der Weg über die Funktoren der &quot;bessere&quot;?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1891529</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1891529</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Sun, 02 May 2010 21:27:44 GMT</pubDate></item><item><title><![CDATA[Reply to Eine Designfrage - Funktion oder Funktor on Sun, 02 May 2010 21:38:12 GMT]]></title><description><![CDATA[<p>daersc schrieb:</p>
<blockquote>
<p>Hallo Forum,</p>
<p>Ich möchte eine Gruppe von Algorithmen zur Turnierauslosung schreiben. Die Signatur aller dieser Algorithmen ist absolut identisch; das habe ich mir so gedacht, damit ich später per <code>std::tr1::function</code> darauf zugreifen kann, ohne tatsächlich zu wissen, welcher Algorithmus nun gerade verwendet wird. Wenn ich später einmal eine GUI dazu schreibe (was ich schon fest vorhabe), dann wäre es für den User aber dennoch wissenswert, welcher Algorithmus gerade verwendet wird, und was er für Eigenschaften hat.</p>
<p>Wie würdet ihr eine Gruppe von Algorithmen realisieren, die a) alle die selbe Signatur haben und die b) Informationen über sich selbst bereitstellen sollen?<br />
Meine Denkansätze sind die hier:</p>
<ul>
<li>Funktoren, die neben dem <code>op()</code> weitere Methoden wie <code>getName()</code> usw. haben</li>
<li>Funktionen (wobei ich hier noch keine Idee habe, wie ich denen Informationen über sich mit auf den Weg geben soll)</li>
</ul>
<p>Was sagt ihr dazu? Ist der Weg über die Funktoren der &quot;bessere&quot;?</p>
</blockquote>
<p>Klingt nach dem Strategy Pattern.</p>
<pre><code class="language-cpp">class IAlgo
{
 public:
  virtual void doAlgo() = 0;
  std::string getName() const = 0;
};

class IAlgoOne : public IAlgo
{
 public:
  virtual void doAlgo()
  {
   // Do Algorithmus
  }

  std::string getName() const { return &quot;IAlgoOne&quot;; }
};

class IAlgoTwo : public IAlgo
{
 public:
  virtual void doAlgo()
  {
   // Do Algorithmus
  }

  std::string getName() const { return &quot;IAlgoTwo&quot;; }
};
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1891534</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1891534</guid><dc:creator><![CDATA[hjkhjk]]></dc:creator><pubDate>Sun, 02 May 2010 21:38:12 GMT</pubDate></item><item><title><![CDATA[Reply to Eine Designfrage - Funktion oder Funktor on Sun, 02 May 2010 21:54:21 GMT]]></title><description><![CDATA[<p>hjkhjk schrieb:</p>
<blockquote>
<p>Klingt nach dem Strategy Pattern.</p>
</blockquote>
<p>Danke! Habs gerade gegoogelt und bin wieder einmal hier im Magazin gelandet <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /><br />
Ich sollt die ganzen Artikel wirklich mal lesen, dann kommen solche Fragen gar nicht erst auf...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1891538</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1891538</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Sun, 02 May 2010 21:54:21 GMT</pubDate></item></channel></rss>