<?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[Zwei Konstruktoren mit eigentlich gleicher Parameterliste unterscheiden?]]></title><description><![CDATA[<p>Hi,</p>
<p>ich habe eine Klasse Node, die, wie der Name schon sagt, einen Zweig eines Baumes darstellen soll.<br />
Die Klasse hat einen ctor mit dem Paramter str. str wird entsprechend geparst, damit der Baum erstellt werden kann. Zum Parsen und Aufbauen des Baumes nutz ich natürlich Rekursion.<br />
Jetzt gibt es aber ein paar Stringoperationen, die nicht für jeden Teilzweig, der ja auch den ctor nutzt, ausgeführt werden sollen, sondern wirklich nur ein Mal am Anfang...</p>
<p>Der Benutzer soll also folgendes schreiben können:<br />
Node node(&quot;1+2*3&quot;);<br />
jetzt wird ein bestimmter ctor aufgerufen, der parst den String und dann gibt er den bearbeiteten String an den anderen ctor weiter...<br />
Der andere ctor muss ja irgendwie gekennzeichnet werden, ich hab das jetzt gemacht, indem ich einen 2., einen Dummyparameter gesetzt hab...</p>
<p>Das ist aber nicht so ne wirklich schöne Lösung, finde ich, hat jemand eine bessere Idee?</p>
<p>MfG Eisflamme <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/topic/150256/zwei-konstruktoren-mit-eigentlich-gleicher-parameterliste-unterscheiden</link><generator>RSS for Node</generator><lastBuildDate>Sat, 05 Sep 2026 13:44:40 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/150256.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 14 Jun 2006 14:40:03 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Zwei Konstruktoren mit eigentlich gleicher Parameterliste unterscheiden? on Wed, 14 Jun 2006 14:40:59 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>ich habe eine Klasse Node, die, wie der Name schon sagt, einen Zweig eines Baumes darstellen soll.<br />
Die Klasse hat einen ctor mit dem Paramter str. str wird entsprechend geparst, damit der Baum erstellt werden kann. Zum Parsen und Aufbauen des Baumes nutz ich natürlich Rekursion.<br />
Jetzt gibt es aber ein paar Stringoperationen, die nicht für jeden Teilzweig, der ja auch den ctor nutzt, ausgeführt werden sollen, sondern wirklich nur ein Mal am Anfang...</p>
<p>Der Benutzer soll also folgendes schreiben können:<br />
Node node(&quot;1+2*3&quot;);<br />
jetzt wird ein bestimmter ctor aufgerufen, der parst den String und dann gibt er den bearbeiteten String an den anderen ctor weiter...<br />
Der andere ctor muss ja irgendwie gekennzeichnet werden, ich hab das jetzt gemacht, indem ich einen 2., einen Dummyparameter gesetzt hab...</p>
<p>Das ist aber nicht so ne wirklich schöne Lösung, finde ich, hat jemand eine bessere Idee?</p>
<p>MfG Eisflamme <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/1077678</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1077678</guid><dc:creator><![CDATA[Mis2com]]></dc:creator><pubDate>Wed, 14 Jun 2006 14:40:59 GMT</pubDate></item><item><title><![CDATA[Reply to Zwei Konstruktoren mit eigentlich gleicher Parameterliste unterscheiden? on Wed, 14 Jun 2006 15:11:13 GMT]]></title><description><![CDATA[<p>Wie wärs, wenn du die Teile, die sich unterscheiden in unterschiedliche Klassen packst und von einer Klasse names &quot;Operator&quot; ableitest.</p>
<p>also in etwa folgendermassen:</p>
<pre><code class="language-cpp">class Operator
{
protected:
    Operator* child;
public:
    Operator();
    virtual ~Operator();
};

class Klammer : Operator
{
public:
    Klammer(string code)
    {
        //parsen, 
        child = new Mal(codeInKlammer);
    }

};
class Mal : Operator
{
private:
    float num1;
    float num2;
public:
    Mal(string code)
    {
        //parsen, dann
        num1 = 4;
        num2 = 3;
    }

};
[cpp]

[cpp]
int main()
{
    Operator* root = new Root(&quot;(2+2)*3&quot;)

}
</code></pre>
<p>Ich hoffe, ich hab dich richtig verstanden und ich hab jetzt keinen Denkfehler gemacht.</p>
<p>noch nen kleiner link: <a href="http://en.wikipedia.org/wiki/Interpreter_pattern" rel="nofollow">http://en.wikipedia.org/wiki/Interpreter_pattern</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1077710</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1077710</guid><dc:creator><![CDATA[helfor?]]></dc:creator><pubDate>Wed, 14 Jun 2006 15:11:13 GMT</pubDate></item><item><title><![CDATA[Reply to Zwei Konstruktoren mit eigentlich gleicher Parameterliste unterscheiden? on Wed, 14 Jun 2006 15:11:58 GMT]]></title><description><![CDATA[<p>Ich würde hier die Node Klasse in Root umbenennen und eine weitere Node Klasse davon ableiten. Root hat dann den &quot;speziellen&quot; ctor der nur einmal aufgerufen werden soll und Node hat dann den anderen ctor (der für Node halt).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1077712</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1077712</guid><dc:creator><![CDATA[Chris++ 0]]></dc:creator><pubDate>Wed, 14 Jun 2006 15:11:58 GMT</pubDate></item><item><title><![CDATA[Reply to Zwei Konstruktoren mit eigentlich gleicher Parameterliste unterscheiden? on Wed, 14 Jun 2006 15:33:53 GMT]]></title><description><![CDATA[<p>es ist nicht aufgabe eines Knoten eines Baumes, einen Baum aufzubauen.</p>
<p>daher rührt auch dein problem. wenn der Baum sich nicht selbst aufbaut, sondern von jemand anders aufgebaut wird, brauchst du nur einen ctor.</p>
<p>hat den vorteil, dass du den Code deines Baumes entlasten kannst, und dass der Baum vielleicht später in einem anderen kontext wieder benutzt werden kann.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1077721</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1077721</guid><dc:creator><![CDATA[otze]]></dc:creator><pubDate>Wed, 14 Jun 2006 15:33:53 GMT</pubDate></item><item><title><![CDATA[Reply to Zwei Konstruktoren mit eigentlich gleicher Parameterliste unterscheiden? on Wed, 14 Jun 2006 15:39:44 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>okay, stimmt, das erscheint logisch. <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="🙂"
    /><br />
Werde es dementsprechend umbauen, danke!</p>
<p>MfG Eisflamme</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1077734</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1077734</guid><dc:creator><![CDATA[Mis2com]]></dc:creator><pubDate>Wed, 14 Jun 2006 15:39:44 GMT</pubDate></item></channel></rss>