<?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[Stilfrage]]></title><description><![CDATA[<p>Hi Forum,<br />
ich schreib grad an ner kleinen Konsolen-Gui-Lib. Ich wolt mich mal erkundigen, was ihr bezüglich der Initalisierung der Steuerelemente auf einem Formular für die beste Variante haltet:<br />
Erben und pure-Virtual (.NET-Like)</p>
<pre><code class="language-cpp">class DLL CForm
{
    //...
public:
    //...
    virtual void InitForm() = 0;
};

//Im Programm:
class MyForm : public CForm
{
    virtual void InitForm()
    {
        //Steuerelemente initialisieren
    }
};

int main()
{
    //Formengine-Initialisierungscode käme hier hin

    CForm *frm = new MyForm(/*bla*/);

    //engine.RegisterForm(frm);

    return 0;
}
</code></pre>
<p>oder diese Variante</p>
<pre><code class="language-cpp">class DLL CForm
{
    //...
public:
    //...
    void AddControl(/*bla*/);
};

//Im Programm
int main()
{
    CForm *frm = new CForm();

    frm.AddControl(/*dasunddas*/);
    frm.AddControl(/*diesunddies*/);

    return 0;
}
</code></pre>
<p>Momentan hab ich die zweite Variante implementiert, weil man nicht für jedes Form erst ne Klasse überladen muss. Andererseits kriegt man ewig lange main-Funktionen.</p>
<p>Was meint ihr?</p>
<p>MfG</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/295977/stilfrage</link><generator>RSS for Node</generator><lastBuildDate>Sat, 15 Aug 2026 05:15:06 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/295977.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 25 Nov 2011 14:41:19 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Stilfrage on Fri, 25 Nov 2011 14:41:19 GMT]]></title><description><![CDATA[<p>Hi Forum,<br />
ich schreib grad an ner kleinen Konsolen-Gui-Lib. Ich wolt mich mal erkundigen, was ihr bezüglich der Initalisierung der Steuerelemente auf einem Formular für die beste Variante haltet:<br />
Erben und pure-Virtual (.NET-Like)</p>
<pre><code class="language-cpp">class DLL CForm
{
    //...
public:
    //...
    virtual void InitForm() = 0;
};

//Im Programm:
class MyForm : public CForm
{
    virtual void InitForm()
    {
        //Steuerelemente initialisieren
    }
};

int main()
{
    //Formengine-Initialisierungscode käme hier hin

    CForm *frm = new MyForm(/*bla*/);

    //engine.RegisterForm(frm);

    return 0;
}
</code></pre>
<p>oder diese Variante</p>
<pre><code class="language-cpp">class DLL CForm
{
    //...
public:
    //...
    void AddControl(/*bla*/);
};

//Im Programm
int main()
{
    CForm *frm = new CForm();

    frm.AddControl(/*dasunddas*/);
    frm.AddControl(/*diesunddies*/);

    return 0;
}
</code></pre>
<p>Momentan hab ich die zweite Variante implementiert, weil man nicht für jedes Form erst ne Klasse überladen muss. Andererseits kriegt man ewig lange main-Funktionen.</p>
<p>Was meint ihr?</p>
<p>MfG</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2148768</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2148768</guid><dc:creator><![CDATA[Jonas OSDever]]></dc:creator><pubDate>Fri, 25 Nov 2011 14:41:19 GMT</pubDate></item><item><title><![CDATA[Reply to Stilfrage on Fri, 25 Nov 2011 14:45:14 GMT]]></title><description><![CDATA[<p>Beides. Wenn InitForm normal virtuell ist, geht das. Und mach bitte kein C vor Klassennamen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2148771</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2148771</guid><dc:creator><![CDATA[eslebedievariation]]></dc:creator><pubDate>Fri, 25 Nov 2011 14:45:14 GMT</pubDate></item><item><title><![CDATA[Reply to Stilfrage on Fri, 25 Nov 2011 14:52:34 GMT]]></title><description><![CDATA[<p>Weder noch. Warum nutzt du keinen Konstruktor?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2148777</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2148777</guid><dc:creator><![CDATA[cooky451]]></dc:creator><pubDate>Fri, 25 Nov 2011 14:52:34 GMT</pubDate></item><item><title><![CDATA[Reply to Stilfrage on Fri, 25 Nov 2011 14:57:04 GMT]]></title><description><![CDATA[<p>cooky451 schrieb:</p>
<blockquote>
<p>Weder noch. Warum nutzt du keinen Konstruktor?</p>
</blockquote>
<p>Stimmt auch wieder. Hab gar nicht dran gedacht, das ich eine AddControl-Schnittstelle wie bei Variante 2 machen könnte und dann dem Lib-Benutzer selbst überlassen könnte ob er erben will oder die 2. Variante benutzen will.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2148782</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2148782</guid><dc:creator><![CDATA[Jonas OSDever]]></dc:creator><pubDate>Fri, 25 Nov 2011 14:57:04 GMT</pubDate></item><item><title><![CDATA[Reply to Stilfrage on Fri, 25 Nov 2011 15:37:31 GMT]]></title><description><![CDATA[<p>Mit dem Entwurfsmuster Template-Method könntest du deinen Benutzern sogar erlauben, nur gewisse Teile der Logik zu überschreiben!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2148800</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2148800</guid><dc:creator><![CDATA[TM]]></dc:creator><pubDate>Fri, 25 Nov 2011 15:37:31 GMT</pubDate></item><item><title><![CDATA[Reply to Stilfrage on Fri, 25 Nov 2011 17:15:29 GMT]]></title><description><![CDATA[<p>Danke, ich werd das Pattern gleich mal ansehen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2148850</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2148850</guid><dc:creator><![CDATA[Jonas OSDever]]></dc:creator><pubDate>Fri, 25 Nov 2011 17:15:29 GMT</pubDate></item></channel></rss>