<?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[Design Frage]]></title><description><![CDATA[<p>Hallo Leute.</p>
<p>Nähmen wir mal an wir sollen eine Klasse Lineare_Funktion schreiben. Wie würdet ihr das realisieren? Also würdet ihr die nötigen Infos so oder so übergeben?<br />
1.)</p>
<pre><code class="language-cpp">Lineare_Funktion L(&quot;f(X) = 2X - 5&quot;);
</code></pre>
<p>2.)</p>
<pre><code class="language-cpp">Lineare_Funktion L(m,b); // f(X) = mx + b
</code></pre>
<p>Wie man die zweite Lösung umsetzen könnte ist mir klar. Ich könnte z.b als m 2 und als b -5 übergeben und er würde beim errechnen von y, 2*X+(-5) rechnen, aber ich habe jetzt einmal die erste Variante gemacht und soweit so gut fertig, sieht sicher bisjen komisch aus und ist auch sicher eine schlechte Lösung, wie würdet ihr da vorgehen?</p>
<p>Mein Code:<br />
Main.cpp</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &quot;Lineare_Funktion.hpp&quot;

using namespace std;

int main()
{
    Lineare_Funktion L(&quot;f(X) = 2X - 5&quot;);
    cout &lt;&lt; L.Errechne_Y(5) &lt;&lt; endl;
    cout &lt;&lt; L.Errechne_X(2) &lt;&lt; endl;
    return 0;
}
</code></pre>
<p>Lineare_Funktion.hpp</p>
<pre><code class="language-cpp">#ifndef Lineare_Funktion_HPP
#define Lineare_Funktion_HPP

#include &lt;string&gt;

class Lineare_Funktion
{
    private:
        double y,m,x,b;
        char bop;

    public:
        Lineare_Funktion();
        Lineare_Funktion(std::string g);

        double Errechne_X(double y);
        double Errechne_Y(double x);
};

#endif
</code></pre>
<p>Lineare_Funktion.cpp</p>
<pre><code class="language-cpp">#include &quot;Lineare_Funktion.hpp&quot;
using namespace std;

Lineare_Funktion::Lineare_Funktion() {}

Lineare_Funktion::Lineare_Funktion(string g)
{
    int fxpos = g.find(&quot;X&quot;,0); // ist das X in f(X)
    int xpos = g.find(&quot;X&quot;,fxpos+1); // ist das X für das der wert eingesetzt wird.
    int gpos = g.find(&quot;=&quot;,0);
    int bpos = g.find_last_of(&quot; &quot;);

    int blub = g.find(&quot;+&quot;,0);
    if (blub &gt;= 0)
    {
        this-&gt;bop = '+';
    }
    else
    {
        this-&gt;bop = '-';
    }

    string m = g.substr(gpos+1 , xpos-gpos-1);
    string b = g.substr(bpos,*(g.end())-bpos);

    const char* lol = m.c_str();
    for (unsigned int i=0 ; i&lt;m.length() ; i++)
    {
        for (int z='0' ; z&lt;='9' ; z++)
        {
            if (z == lol[i]) { this-&gt;m = lol[i] - '0'; }
        }
    }

    const char* rofl = b.c_str();
    for (unsigned int i=0 ; i&lt;b.length() ; i++)
    {
        for (int z='0' ; z&lt;='9' ; z++)
        {
            if (z == rofl[i]) { this-&gt;b = rofl[i] - '0'; }
        }
    }
}

double Lineare_Funktion::Errechne_X(double y)
{
    // 5 = 2X - 5
    double tmp = y;
    if (bop == '+') { tmp -= b; }
    else { tmp += b; }
    tmp /= m;
    return tmp;
}

double Lineare_Funktion::Errechne_Y(double x)
{
    double tmp = this-&gt;m * x;
    if (bop == '+') { tmp += b; }
    else { tmp -= b; }
    return tmp;
}
</code></pre>
<p>Also meine Fragen nun, wie könnte man die erstere Idee besser realisieren und welche von den beiden ist aus der Sicht eines Programmierers am besten? (Ich denke mal die 2te^^). Ahja und gäbe es Fälle, wo die Erstere besser wäre?</p>
<p>Mfg Design Frager</p>
<p>PS: Ja ich hab noch nicht viel Ahnung von der STL, aber der Code funktioniert so, solange m oder b nicht mehr wie 1 stelle haben. Und find() gibt mir wenn er nichts findet oder es nicht klappt immer -1 zurück. Ist das so normal oder sollte man sich da nicht drauf verlassen?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/287708/design-frage</link><generator>RSS for Node</generator><lastBuildDate>Thu, 20 Aug 2026 07:46:40 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/287708.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 02 Jun 2011 17:37:44 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Design Frage on Thu, 02 Jun 2011 17:37:44 GMT]]></title><description><![CDATA[<p>Hallo Leute.</p>
<p>Nähmen wir mal an wir sollen eine Klasse Lineare_Funktion schreiben. Wie würdet ihr das realisieren? Also würdet ihr die nötigen Infos so oder so übergeben?<br />
1.)</p>
<pre><code class="language-cpp">Lineare_Funktion L(&quot;f(X) = 2X - 5&quot;);
</code></pre>
<p>2.)</p>
<pre><code class="language-cpp">Lineare_Funktion L(m,b); // f(X) = mx + b
</code></pre>
<p>Wie man die zweite Lösung umsetzen könnte ist mir klar. Ich könnte z.b als m 2 und als b -5 übergeben und er würde beim errechnen von y, 2*X+(-5) rechnen, aber ich habe jetzt einmal die erste Variante gemacht und soweit so gut fertig, sieht sicher bisjen komisch aus und ist auch sicher eine schlechte Lösung, wie würdet ihr da vorgehen?</p>
<p>Mein Code:<br />
Main.cpp</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &quot;Lineare_Funktion.hpp&quot;

using namespace std;

int main()
{
    Lineare_Funktion L(&quot;f(X) = 2X - 5&quot;);
    cout &lt;&lt; L.Errechne_Y(5) &lt;&lt; endl;
    cout &lt;&lt; L.Errechne_X(2) &lt;&lt; endl;
    return 0;
}
</code></pre>
<p>Lineare_Funktion.hpp</p>
<pre><code class="language-cpp">#ifndef Lineare_Funktion_HPP
#define Lineare_Funktion_HPP

#include &lt;string&gt;

class Lineare_Funktion
{
    private:
        double y,m,x,b;
        char bop;

    public:
        Lineare_Funktion();
        Lineare_Funktion(std::string g);

        double Errechne_X(double y);
        double Errechne_Y(double x);
};

#endif
</code></pre>
<p>Lineare_Funktion.cpp</p>
<pre><code class="language-cpp">#include &quot;Lineare_Funktion.hpp&quot;
using namespace std;

Lineare_Funktion::Lineare_Funktion() {}

Lineare_Funktion::Lineare_Funktion(string g)
{
    int fxpos = g.find(&quot;X&quot;,0); // ist das X in f(X)
    int xpos = g.find(&quot;X&quot;,fxpos+1); // ist das X für das der wert eingesetzt wird.
    int gpos = g.find(&quot;=&quot;,0);
    int bpos = g.find_last_of(&quot; &quot;);

    int blub = g.find(&quot;+&quot;,0);
    if (blub &gt;= 0)
    {
        this-&gt;bop = '+';
    }
    else
    {
        this-&gt;bop = '-';
    }

    string m = g.substr(gpos+1 , xpos-gpos-1);
    string b = g.substr(bpos,*(g.end())-bpos);

    const char* lol = m.c_str();
    for (unsigned int i=0 ; i&lt;m.length() ; i++)
    {
        for (int z='0' ; z&lt;='9' ; z++)
        {
            if (z == lol[i]) { this-&gt;m = lol[i] - '0'; }
        }
    }

    const char* rofl = b.c_str();
    for (unsigned int i=0 ; i&lt;b.length() ; i++)
    {
        for (int z='0' ; z&lt;='9' ; z++)
        {
            if (z == rofl[i]) { this-&gt;b = rofl[i] - '0'; }
        }
    }
}

double Lineare_Funktion::Errechne_X(double y)
{
    // 5 = 2X - 5
    double tmp = y;
    if (bop == '+') { tmp -= b; }
    else { tmp += b; }
    tmp /= m;
    return tmp;
}

double Lineare_Funktion::Errechne_Y(double x)
{
    double tmp = this-&gt;m * x;
    if (bop == '+') { tmp += b; }
    else { tmp -= b; }
    return tmp;
}
</code></pre>
<p>Also meine Fragen nun, wie könnte man die erstere Idee besser realisieren und welche von den beiden ist aus der Sicht eines Programmierers am besten? (Ich denke mal die 2te^^). Ahja und gäbe es Fälle, wo die Erstere besser wäre?</p>
<p>Mfg Design Frager</p>
<p>PS: Ja ich hab noch nicht viel Ahnung von der STL, aber der Code funktioniert so, solange m oder b nicht mehr wie 1 stelle haben. Und find() gibt mir wenn er nichts findet oder es nicht klappt immer -1 zurück. Ist das so normal oder sollte man sich da nicht drauf verlassen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2072493</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2072493</guid><dc:creator><![CDATA[Design Frager]]></dc:creator><pubDate>Thu, 02 Jun 2011 17:37:44 GMT</pubDate></item><item><title><![CDATA[Reply to Design Frage on Thu, 02 Jun 2011 17:46:10 GMT]]></title><description><![CDATA[<p>Also ich würde die Koeffizienten der Funktion lieber als einzelne Parameter übergeben, das ist einfacher in der Handhabung.</p>
<p>Ansonsten solltest dur dir mal ansehen, wie man Eingaben richtig parst - bei entsprechend einfachen Formaten könnten schon die iostreams etwas erreichen, wenn es komplexer wird, empfehle ich boost::spirit.</p>
<p>PS: string::find liefert eigentlich npos zurück, das ist eine unsigned-Konstante mit dem Wert -1. Die Zuweisungen zu int könnten trotzdem nicht portabel sein.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2072497</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2072497</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Thu, 02 Jun 2011 17:46:10 GMT</pubDate></item><item><title><![CDATA[Reply to Design Frage on Fri, 03 Jun 2011 12:05:23 GMT]]></title><description><![CDATA[<p>Der Rückgabewert von <code>std::string::find</code> ist <code>std::string::size_type</code> . Er kann direkt nach <code>std::string::npos</code> getestet werden. Das es bei dir -1 ist, ist implementationsspezifisch und sollte so nicht verwendet werden.</p>
<pre><code class="language-cpp">std::string test(&quot;ABCDFG&quot;);  // &lt;= kein 'E'

	std::string::size_type p1 = test.find('E');  // 'alt' C++
	auto p2 = test.find('E');  // C++0x

	if(p1==std::string::npos)
	{
		// ...
	}

	if(p2==std::string::npos) // gleich zu p1
	{
		// ...
	}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2072759</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2072759</guid><dc:creator><![CDATA[tunichtgut]]></dc:creator><pubDate>Fri, 03 Jun 2011 12:05:23 GMT</pubDate></item><item><title><![CDATA[Reply to Design Frage on Fri, 03 Jun 2011 12:31:45 GMT]]></title><description><![CDATA[<p>Noch ein paar kleine Tips. CStoll schon geschrieben hat ist die explizite Lösung mit der direkten Angabe der Werte besser. Zum einen geht das schneller, vor allem bei der internen Verwendung. Als zweites bedeutet so eine Stringübergabe einen kompletten Parser einzubauen, wenn das vernünftig gemacht werden sollte. Nichts ist schlechter als einen fehlerhaften String anzugeben, die Klasse nimmt daraus irgendwelche Werte und rechnet etwas was der Anwender eigentlich garnicht will. So ein Parser gehört zur äußeren Schnittstelle (zum Benutzer) damit der sehen kann wenn dort Fehler sind.</p>
<p>In der Klassendefinition sind auch noch die Variablen <code>x</code> und <code>y</code> deklariert. Die braucht man dort überhaupt nicht. Die werden in den Berechnungsfunktionen von den lokalen Parametern überlagert und mit ihnen wird garnicht gearbeitet.</p>
<p>Dann noch die Membervariable <code>bop</code> . Das Vorzeichen sollte in <code>b</code> schon automatisch beinhaltet sein. Bei der Berechnung noch eine zusätzliche if-Abfrage ist unnötig und kostet nur. Zusätzlich wird die Klassendefinition dadurch unsicher - Was wenn <code>b</code> einen negativen Wert besitzt ?</p>
<p>Als letztes fehlt noch bei der Division der test auf 0.0. Ist <code>m=0.0</code> , so kann keine <code>Errechne_Y</code> funktioniern.</p>
<pre><code class="language-cpp">class Lineare_Funktion
{
    private:
        double m, b;

    public:
        Lineare_Funktion();

        double Errechne_X(double y);
        double Errechne_Y(double x);
};

double Lineare_Funktion::Errechne_Y(double x)
{
    if(m==0.0)
    {
        // throw ????
    }

    return (x-b)/m;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2072771</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2072771</guid><dc:creator><![CDATA[tunichtgut]]></dc:creator><pubDate>Fri, 03 Jun 2011 12:31:45 GMT</pubDate></item><item><title><![CDATA[Reply to Design Frage on Sat, 04 Jun 2011 17:24:41 GMT]]></title><description><![CDATA[<blockquote>
<pre><code class="language-cpp">class Lineare_Funktion
{
    private:
        double m, b;

    public:
        Lineare_Funktion();

        double Errechne_X(double y);
        double Errechne_Y(double x);
};

double Lineare_Funktion::Errechne_Y(double x)
{
    if(m==0.0)
    {
        // throw ????
    }

    return (x-b)/m;
}
</code></pre>
</blockquote>
<p>Meinst du nicht eher</p>
<pre><code class="language-cpp">return (m*x)-b;
</code></pre>
<p>? <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="😃"
    /></p>
<p>Und warum soll bei m = 0.0 eine Exception geworfen werden? Wenn m = 0.0 ist, dann ist es eine Funktion mit 0 Steigung. Es muss nur extra behandelt werden, da sonst überall immer 0 wäre. In dem fall, dass m = 0.0 bei f(X) = 2X - 5 ist hieße die Funktionsgleichung nur noch Y = -5. Das ist aber kein Grund für eine exception^^</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2073357</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2073357</guid><dc:creator><![CDATA[alf123]]></dc:creator><pubDate>Sat, 04 Jun 2011 17:24:41 GMT</pubDate></item><item><title><![CDATA[Reply to Design Frage on Sat, 04 Jun 2011 17:40:07 GMT]]></title><description><![CDATA[<p>alf123 schrieb:</p>
<blockquote>
<p>Meinst du nicht eher</p>
<pre><code class="language-cpp">return (m*x)-b;
</code></pre>
<p>? <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="😃"
    /></p>
</blockquote>
<p>Ich denke, er hat nur X und Y verwechselt <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>
<blockquote>
<p>Und warum soll bei m = 0.0 eine Exception geworfen werden? Wenn m = 0.0 ist, dann ist es eine Funktion mit 0 Steigung. Es muss nur extra behandelt werden, da sonst überall immer 0 wäre. In dem fall, dass m = 0.0 bei f(X) = 2X - 5 ist hieße die Funktionsgleichung nur noch Y = -5. Das ist aber kein Grund für eine exception^^</p>
</blockquote>
<p>bei &quot;f(X)=2X-5&quot; kann m nicht 0 sein, außer du hast Müll gebaut beim Parsen der Funktionsgleichung. Probleme entstehen, wenn du eine Funktionsgleichung &quot;f(X)=0X+5&quot; gegeben hast und jetzt ausrechnen willst, an welcher Stelle f(X)=17 gilt - daher die Exception bzw. Sonderbehandlung.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2073363</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2073363</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Sat, 04 Jun 2011 17:40:07 GMT</pubDate></item><item><title><![CDATA[Reply to Design Frage on Sat, 04 Jun 2011 17:43:14 GMT]]></title><description><![CDATA[<p>Auf Melmac scheint man komisch zu rechnen...</p>
<p>Die Funktion heißt nur falsch, gemeint war <code>Errechne_X(double y)</code> , also quasi die Umkehrfunktion. Deine Formel ist aber auch falsch, sinnvoller wäre:</p>
<pre><code class="language-cpp">return m * x + b
</code></pre>
<p>Das Problem an <code>m = 0.0</code> ist, dass die entstehende Funktion weder linear noch umkehrbar ist, was beides eine Exception rechtfertigt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2073364</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2073364</guid><dc:creator><![CDATA[bmario]]></dc:creator><pubDate>Sat, 04 Jun 2011 17:43:14 GMT</pubDate></item><item><title><![CDATA[Reply to Design Frage on Sat, 04 Jun 2011 18:04:05 GMT]]></title><description><![CDATA[<p><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="😕"
    /> So viel Gedöns <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="😕"
    /> Es kreisste der Elefant (*) und gebar eine Maus! <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="😃"
    /></p>
<p>Wenn es nur darum geht, eine einfache Funktion z=function(x,y) zu realisieren, brauche ich keine Klasse dafür. Wozu die Übergabe von Strings, wenn es sich um Zahlenwerte handelt? Falls man vorher Strings hatte, wandelt man die in Zahlenwerte um. Oder muss vorher noch geprüft werden, ob man überhaupt rechenbare Zahlenwerte hat? Alles ist native C oder darf man das nicht mehr verwenden? <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>basta!</p>
<p>(*) Das ist der mit dem langen Rüssel und den grossen Ohren</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2073376</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2073376</guid><dc:creator><![CDATA[berniebutt]]></dc:creator><pubDate>Sat, 04 Jun 2011 18:04:05 GMT</pubDate></item><item><title><![CDATA[Reply to Design Frage on Sat, 04 Jun 2011 20:21:11 GMT]]></title><description><![CDATA[<p>bmario schrieb:</p>
<blockquote>
<p>Die Funktion heißt nur falsch, gemeint war <code>Errechne_X(double y)</code> , also quasi die Umkehrfunktion.[/cpp]</p>
</blockquote>
<p>Jup - Etwas genauer hinsehen beim posten sollte auch mal bei mir helfen.</p>
<p><code>Errechne_Y(double x)</code><br />
<code>y = m*x + b</code></p>
<p><code>Errechne_X(double y)</code><br />
<code>x = (y-b) / m</code></p>
<p>Und da sich die Prozessoren heute auch bei 3 GHz immer noch weigern durch 0 zu teilen, muss man das eben besonders behandeln. Das <code>throw</code> ist übrigens nur angedeutet, es wären auch andere Arten der Fehlerrückmeldung möglich.</p>
<p>berniebutt  schrieb:</p>
<blockquote>
<p>Wenn es nur darum geht, eine einfache Funktion z=function(x,y) zu realisieren, brauche ich keine Klasse dafür.</p>
</blockquote>
<p>Jein. Es geht natürlich auch in einer einfachen Funktion wie z.B.<br />
<code>double Geradenfunktion(double m, double b, double, x)</code><br />
Aber die Klasse wird vielleicht dazu benötigt einen Grafen zu zeichnen. Dann ist die Benutzung der Klasse wesentlich einfacher, da ich die Geradendefinition nur einmal anlegen muss und in der eigentlichen Zeichenfunktion mich auf das ausrechnen des Funktionswertes konzentrieren kann - <code>m</code> und <code>b</code> müssen nicht mitverwaltet werden sondern nur die Gerade selber. Und jetzt weiter: Ich will auch mal eine Parabel zeichnen. Schwups, nur eine andere Klasse in die Zeichenfunktion einbauen und es flutscht. Bei einer einfachen Funktion muss in der Zeichenfunktion auch die Geradenparameter mit verwalten. Stelle ich von einer Geraden auf eine Parabel um, so muss ich in der Zeichenfunktion wesentlich mehr anpassen. Wirklich sinnvoll wird es dann mit einer virtuellen Basisklasse <code>Basis_Funktion</code> von der weitere Funktionen wie auch die <code>Lineare_Funktion</code> abgeleitet wird. Da brauche ich nur eine Zeichenfunktion definieren und alle von <code>Basis_Funktion</code> abgeleiteten Funktionen können automatisch gezeichnet werden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2073425</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2073425</guid><dc:creator><![CDATA[tunichtgut]]></dc:creator><pubDate>Sat, 04 Jun 2011 20:21:11 GMT</pubDate></item><item><title><![CDATA[Reply to Design Frage on Sat, 04 Jun 2011 20:26:46 GMT]]></title><description><![CDATA[<p>tunichtgut schrieb:</p>
<blockquote>
<p>Wirklich sinnvoll wird es dann mit einer virtuellen Basisklasse <code>Basis_Funktion</code> von der weitere Funktionen wie auch die <code>Lineare_Funktion</code> abgeleitet wird. Da brauche ich nur eine Zeichenfunktion definieren und alle von <code>Basis_Funktion</code> abgeleiteten Funktionen können automatisch gezeichnet werden.</p>
</blockquote>
<p>Oder noch besser, man programmiert die Zeichne-Funktion als Funktionstemplate, nennt <code>double berechne_Y(double x)</code> in <code>double operator()(double x)</code> um und kann dann sowohl die Klasse als Funktor, beliebige andere Funktionsklassen und auch C-Funktionen übergeben <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/2073428</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2073428</guid><dc:creator><![CDATA[bmario]]></dc:creator><pubDate>Sat, 04 Jun 2011 20:26:46 GMT</pubDate></item><item><title><![CDATA[Reply to Design Frage on Sun, 05 Jun 2011 11:36:30 GMT]]></title><description><![CDATA[<p>tunichtgut schrieb:</p>
<blockquote>
<p>Aber die Klasse wird vielleicht dazu benötigt ...</p>
</blockquote>
<p>Davon war hier keine Rede, nur von einer linearen Funktion! <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="😞"
    /><br />
Wenn man so an das Design eines Programmes herangeht, müsste man schon viele Variable sofort in eine Klasse packen. Man weiss ja oft nie, ob man noch mehr damit anfangen will. Beispiel: KontoStand &lt; kritisch --&gt; Online-Order an Bank erteilen? <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>
]]></description><link>https://www.c-plusplus.net/forum/post/2073557</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2073557</guid><dc:creator><![CDATA[berniebutt]]></dc:creator><pubDate>Sun, 05 Jun 2011 11:36:30 GMT</pubDate></item></channel></rss>