<?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[Name für Basisklasse + Typedef gesucht]]></title><description><![CDATA[<p>Ich hab' in einem meiner Projekte ein Klassen-Template das als Basisklasse für abgeleitete Controls (GUI Widgets) verwendet wird. Sieht ca. so aus:</p>
<pre><code class="language-cpp">template &lt;class DERIVED, class BASE&gt;
class MyBaseTemplate : public BASE
{
protected:
    explicit MyBaseTemplate(Blah* b)
        : BASE(b)
    {
    }

    typedef MyBaseTemplate MyBaseTypedef;

    // ein paar Hilfsfunktionen die von DERIVED abhängen
};

// Verwendung:

class FooControl : public MyBaseTemplate&lt;FooControl, Control&gt;
{
public:
    using MyBaseTypedef::SomeFunction();

    virtual void SomeOverride()
    {
        MyBaseTypedef::SomeOverride();
        Whatever();
    }
};
</code></pre>
<p>Der Typedef ist eigentlich nur da, damit man Namen der Basisklasse einfacher ansprechen kann.</p>
<p>Und nun suche ich gute Namen für &quot;MyBaseTemplate&quot; und &quot;MyBaseTypedef&quot;.<br />
Ich würde sie gern beide &quot;ControlBase&quot; nennen, aber das geht ja leider nicht (Member-typedef darf nicht gleich wie die Klasse heissen).</p>
<p>Vorschläge?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/290708/name-für-basisklasse-typedef-gesucht</link><generator>RSS for Node</generator><lastBuildDate>Sun, 16 Aug 2026 18:09:19 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/290708.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 01 Aug 2011 18:48:31 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Name für Basisklasse + Typedef gesucht on Mon, 01 Aug 2011 18:50:48 GMT]]></title><description><![CDATA[<p>Ich hab' in einem meiner Projekte ein Klassen-Template das als Basisklasse für abgeleitete Controls (GUI Widgets) verwendet wird. Sieht ca. so aus:</p>
<pre><code class="language-cpp">template &lt;class DERIVED, class BASE&gt;
class MyBaseTemplate : public BASE
{
protected:
    explicit MyBaseTemplate(Blah* b)
        : BASE(b)
    {
    }

    typedef MyBaseTemplate MyBaseTypedef;

    // ein paar Hilfsfunktionen die von DERIVED abhängen
};

// Verwendung:

class FooControl : public MyBaseTemplate&lt;FooControl, Control&gt;
{
public:
    using MyBaseTypedef::SomeFunction();

    virtual void SomeOverride()
    {
        MyBaseTypedef::SomeOverride();
        Whatever();
    }
};
</code></pre>
<p>Der Typedef ist eigentlich nur da, damit man Namen der Basisklasse einfacher ansprechen kann.</p>
<p>Und nun suche ich gute Namen für &quot;MyBaseTemplate&quot; und &quot;MyBaseTypedef&quot;.<br />
Ich würde sie gern beide &quot;ControlBase&quot; nennen, aber das geht ja leider nicht (Member-typedef darf nicht gleich wie die Klasse heissen).</p>
<p>Vorschläge?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2100548</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2100548</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Mon, 01 Aug 2011 18:50:48 GMT</pubDate></item><item><title><![CDATA[Reply to Name für Basisklasse + Typedef gesucht on Mon, 01 Aug 2011 19:12:42 GMT]]></title><description><![CDATA[<p>Dein typedef ist sinnlos. Wenn du den Namen einfacher ansprechen willst, dann mach das direkt im Code, das ist nicht Aufgabe einer Klasse.<br />
Außerdem solltest du DERIVED und BASE nicht in Großbuchstaben schreiben - Solche Namen werden gerne für defines und Konstanten genommen, DERIVED und BASE heißt schnell mal ein Define.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2100572</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2100572</guid><dc:creator><![CDATA[314159265358979]]></dc:creator><pubDate>Mon, 01 Aug 2011 19:12:42 GMT</pubDate></item><item><title><![CDATA[Reply to Name für Basisklasse + Typedef gesucht on Mon, 01 Aug 2011 20:03:31 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/23275">@314159265358979</a>:<br />
Du gehst mir manchmal tierisch auf den Sack.</p>
<p>314159265358979 schrieb:</p>
<blockquote>
<p>Dein typedef ist sinnlos.</p>
</blockquote>
<p>Nein, ist es nicht.<br />
Nur weil du den Sinn nicht verstanden hast, muss es nicht sinnlos sein.</p>
<blockquote>
<p>Außerdem solltest du DERIVED und BASE nicht in Großbuchstaben schreiben - Solche Namen werden gerne für defines und Konstanten genommen, DERIVED und BASE heißt schnell mal ein Define.</p>
</blockquote>
<p>Aha. Was hältst du, mit deinen zig Jahren Erfahrung in der Praxis, für eine sinnvolle Namenskonvention für Template-Parameter?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2100591</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2100591</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Mon, 01 Aug 2011 20:03:31 GMT</pubDate></item><item><title><![CDATA[Reply to Name für Basisklasse + Typedef gesucht on Mon, 01 Aug 2011 20:30:11 GMT]]></title><description><![CDATA[<p>hustbaer schrieb:</p>
<blockquote>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/23275">@314159265358979</a>:<br />
Du gehst mir manchmal tierisch auf den Sack.</p>
</blockquote>
<p>Danke gleichfalls! <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>
<p>hustbaer schrieb:</p>
<blockquote>
<p>Nein, ist es nicht.<br />
Nur weil du den Sinn nicht verstanden hast, muss es nicht sinnlos sein.</p>
</blockquote>
<p>Wenn ich in Dervied auf die Basisklasse zugreifen will, dann nehm ich dafür ein:</p>
<pre><code class="language-cpp">typedef BaseClass&lt;T1, T2, T3, ...&gt; base;
</code></pre>
<p>Sowas gehört dort hin, wo ich die Klasse verwenden will, und nicht in die Klasse.</p>
<p>hustbaer schrieb:</p>
<blockquote>
<p>Aha. Was hältst du, mit deinen zig Jahren Erfahrung in der Praxis, für eine sinnvolle Namenskonvention für Template-Parameter?</p>
</blockquote>
<p>CamelCase ist eine Möglichkeit. Du willst mir doch nicht ernstaft erzählen, dass du deine Template-Prameter in GROSSBUCHSTABEN schreibst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2100601</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2100601</guid><dc:creator><![CDATA[314159265358979]]></dc:creator><pubDate>Mon, 01 Aug 2011 20:30:11 GMT</pubDate></item><item><title><![CDATA[Reply to Name für Basisklasse + Typedef gesucht on Mon, 01 Aug 2011 20:46:07 GMT]]></title><description><![CDATA[<p>MyBaseTemplate = BehaviorInjectionConcept?<br />
MyBaseTypedef = InjectedBehavior?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2100610</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2100610</guid><dc:creator><![CDATA[Zeus]]></dc:creator><pubDate>Mon, 01 Aug 2011 20:46:07 GMT</pubDate></item><item><title><![CDATA[Reply to Name für Basisklasse + Typedef gesucht on Mon, 01 Aug 2011 20:51:09 GMT]]></title><description><![CDATA[<p>314159265358979 schrieb:</p>
<blockquote>
<p>Sowas gehört dort hin, wo ich die Klasse verwenden will, und nicht in die Klasse.</p>
</blockquote>
<p>Du verkündest auch mir ein wenig zu oft, was in C++ alles verboten sei, was kein C++ sei und so, hast dabei aber auch oft unrecht, kennst noch zu wenige Standardtechniken, überschätzt die Gefahren.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2100612</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2100612</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Mon, 01 Aug 2011 20:51:09 GMT</pubDate></item><item><title><![CDATA[Reply to Name für Basisklasse + Typedef gesucht on Mon, 01 Aug 2011 20:55:23 GMT]]></title><description><![CDATA[<p>314159265358979 schrieb:</p>
<blockquote>
<p>hustbaer schrieb:</p>
<blockquote>
<p>Nein, ist es nicht.<br />
Nur weil du den Sinn nicht verstanden hast, muss es nicht sinnlos sein.</p>
</blockquote>
<p>Wenn ich in Dervied auf die Basisklasse zugreifen will, dann nehm ich dafür ein:</p>
<pre><code class="language-cpp">typedef BaseClass&lt;T1, T2, T3, ...&gt; base;
</code></pre>
<p>Sowas gehört dort hin, wo ich die Klasse verwenden will, und nicht in die Klasse.</p>
</blockquote>
<p>Ich brauche das in 2/3 aller abgeleiteten Klassen. Das BaseClass&lt;&gt; Template ist *immer* die 1. Basisklasse, und ich will auch immer auf die Namen dieser 1. Basisklasse zugreifen.</p>
<p>Das Typedef in zig abgeleiteten Klasse zu wiederholen, macht wohl kaum Sinn. Das ganze Ding ist sowieso eine reine Commodity-Klasse, wieso sollte ich dann das Typedef nicht mit dort hinein packen?<br />
Kannst du mir einen einzigen guten Grund nennen? Ausser &quot;es gehört dort nicht hin&quot; (was nämlich sofort die Frage aufwirft: wieso gehört es denn dort nicht hin).</p>
<p>314314langstrumpf schrieb:</p>
<blockquote>
<p>hustbaer schrieb:</p>
<blockquote>
<p>Aha. Was hältst du, mit deinen zig Jahren Erfahrung in der Praxis, für eine sinnvolle Namenskonvention für Template-Parameter?</p>
</blockquote>
<p>CamelCase ist eine Möglichkeit. Du willst mir doch nicht ernstaft erzählen, dass du deine Template-Prameter in GROSSBUCHSTABEN schreibst.</p>
</blockquote>
<p>Ich will dir gar nix erzählen. DU meinst hier Dinge kommentieren zu müssen die überhaupt nicht zum Thema gehören.</p>
<p>Ich verwende CamelCase für Typennamen. Die gleiche Namenskonvention für Typennamen und Template-Parameter zu verwenden, hat sich in der Praxis als unvorteilhaft erwiesen.<br />
Also. Nächster Vorschlag.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2100614</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2100614</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Mon, 01 Aug 2011 20:55:23 GMT</pubDate></item><item><title><![CDATA[Reply to Name für Basisklasse + Typedef gesucht on Mon, 01 Aug 2011 21:02:39 GMT]]></title><description><![CDATA[<p>Zeus schrieb:</p>
<blockquote>
<p>MyBaseTemplate = BehaviorInjectionConcept?<br />
MyBaseTypedef = InjectedBehavior?</p>
</blockquote>
<p>Hm, ich sehe schon, da ist wohl ein wenig mehr Kontext gefragt.</p>
<p>Es geht um GUI Controls (Widgets), und die Template-Klasse tut nicht wirklich Verhalten &quot;injizieren&quot;. Der Hauptgrund, warum es die Klasse überhaupt gibt, ist, weil ich zwei Dinge haben wollte:</p>
<ol>
<li>Erwähntes Typedef, damit ich in allen Controls über einen einheitlichen Namen auf ihre jeweilige Basisklasse zugreifen kann</li>
<li>Sie überschreibt die &quot;shared_from_this&quot; Funktionen mit welchen, die den Typ der abgeleiteten Klasse zurückgeben.</li>
</ol>
<p>Ich hätte eher an sowas gedacht:<br />
MyBaseTemplate = ControlBaseImpl<br />
MyBaseTypedef = ControlBase</p>
<p>Bloss das ControlBaseImpl finde ich irgendwie ... doof <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/2100616</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2100616</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Mon, 01 Aug 2011 21:02:39 GMT</pubDate></item><item><title><![CDATA[Reply to Name für Basisklasse + Typedef gesucht on Mon, 01 Aug 2011 21:10:03 GMT]]></title><description><![CDATA[<p>hustbaer schrieb:</p>
<blockquote>
<p>Ich brauche das in 2/3 aller abgeleiteten Klassen. Das BaseClass&lt;&gt; Template ist *immer* die 1. Basisklasse, und ich will auch immer auf die Namen dieser 1. Basisklasse zugreifen.</p>
<p>Das Typedef in zig abgeleiteten Klasse zu wiederholen, macht wohl kaum Sinn. Das ganze Ding ist sowieso eine reine Commodity-Klasse, wieso sollte ich dann das Typedef nicht mit dort hinein packen?<br />
Kannst du mir einen einzigen guten Grund nennen? Ausser &quot;es gehört dort nicht hin&quot; (was nämlich sofort die Frage aufwirft: wieso gehört es denn dort nicht hin).</p>
</blockquote>
<p>Dann sag mir doch mal, was am besten ist:</p>
<pre><code class="language-cpp">using base&lt;int, double, std::string&gt;::base_class; // (1)
typedef base&lt;int, double, std::string&gt;::base_class base_class; // (2)
typedef base&lt;int, double, std::string&gt; base_class; // (3)
</code></pre>
<p>Begründe, warum. (Begründung, (1) ist 1 Zeichen kürzer, zieht nicht.)</p>
<p>hustbaer schrieb:</p>
<blockquote>
<p>314314langstrumpf</p>
</blockquote>
<p>Süß <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>
<p>hustbaer schrieb:</p>
<blockquote>
<p>Ich will dir gar nix erzählen. DU meinst hier Dinge kommentieren zu müssen die überhaupt nicht zum Thema gehören.</p>
</blockquote>
<p>Ich habe den Vorschlag gebracht, eine andere Konvention zu verwenden. Eine bestimmte hab ich nicht genannt.</p>
<p>hustbaer schrieb:</p>
<blockquote>
<p>Ich verwende CamelCase für Typennamen. Die gleiche Namenskonvention für Typennamen und Template-Parameter zu verwenden, hat sich in der Praxis als unvorteilhaft erwiesen.</p>
</blockquote>
<p>Und ich schreibe klassen_namen und TemplateParameter. Cool, was? :p</p>
<p>hustbaer schrieb:</p>
<blockquote>
<p>Also. Nächster Vorschlag.</p>
</blockquote>
<p>Dann halt KlassenName und template_parameter. Immer noch besser, als TEMPLATE_PARAMETER.<br />
(Mal abgesehen davon, dass Grossbuchstaben Augenkrebs verursachen.)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2100617</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2100617</guid><dc:creator><![CDATA[314159265358979]]></dc:creator><pubDate>Mon, 01 Aug 2011 21:10:03 GMT</pubDate></item><item><title><![CDATA[Reply to Name für Basisklasse + Typedef gesucht on Mon, 01 Aug 2011 21:15:23 GMT]]></title><description><![CDATA[<p>Lass mich deine Situation anders beschreiben, durch den Zwang der azyklische Abhängigkeit ist die Template Klasse zwar die Basis der Control, aber ihre Funktion ist eher ein Hilfsmittel zu sein?</p>
<p>MyBaseTemplate = UtilityImpl<br />
MyBaseTypedef = BaseUtility</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2100619</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2100619</guid><dc:creator><![CDATA[Zeus]]></dc:creator><pubDate>Mon, 01 Aug 2011 21:15:23 GMT</pubDate></item><item><title><![CDATA[Reply to Name für Basisklasse + Typedef gesucht on Mon, 01 Aug 2011 21:19:55 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/23275">@314159265358979</a></p>
<p>Boah der Mann fragte nach Hilfestellung um Benennungen zu finden, nicht von ein Mädchen angezickt zu werden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2100620</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2100620</guid><dc:creator><![CDATA[Zeus]]></dc:creator><pubDate>Mon, 01 Aug 2011 21:19:55 GMT</pubDate></item><item><title><![CDATA[Reply to Name für Basisklasse + Typedef gesucht on Mon, 01 Aug 2011 21:21:08 GMT]]></title><description><![CDATA[<p>Zeus schrieb:</p>
<blockquote>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/23275">@314159265358979</a></p>
<p>Boah der Mann fragte nach Hilfestellung um Benennungen zu finden, nicht von ein Mädchen angezickt zu werden.</p>
</blockquote>
<p>Das Anzicken hat erst mit hustbaers Post begonnen. Im Gegensatz zu seinem, war meiner nämlich konstruktiv gemeint und vor allem höflich <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/2100621</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2100621</guid><dc:creator><![CDATA[314159265358979]]></dc:creator><pubDate>Mon, 01 Aug 2011 21:21:08 GMT</pubDate></item><item><title><![CDATA[Reply to Name für Basisklasse + Typedef gesucht on Mon, 01 Aug 2011 21:25:12 GMT]]></title><description><![CDATA[<p>Einheitlicher Name, einheitliche Basis für shared_from_this?<br />
Etwas einfallslos: uniform_shared_base und uniform_name?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2100623</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2100623</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Mon, 01 Aug 2011 21:25:12 GMT</pubDate></item><item><title><![CDATA[Reply to Name für Basisklasse + Typedef gesucht on Mon, 01 Aug 2011 21:29:38 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/30982">@typedef</a>: Nehm ich zurück. Habe nicht mehr gewusst, dass die mit vererbt werden. Dennoch brauchst du, lieber hustbaer, nicht gleich so auf mich losgehen. Punkt 2 stimmt weiterhin. <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/2100625</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2100625</guid><dc:creator><![CDATA[314159265358979]]></dc:creator><pubDate>Mon, 01 Aug 2011 21:29:38 GMT</pubDate></item><item><title><![CDATA[Reply to Name für Basisklasse + Typedef gesucht on Mon, 01 Aug 2011 21:37:31 GMT]]></title><description><![CDATA[<p>314159265358979 schrieb:</p>
<blockquote>
<p>Das Anzicken hat erst mit hustbaers Post begonnen. Im Gegensatz zu seinem, war meiner nämlich konstruktiv gemeint und vor allem höflich <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>Es war auf jeden Fall nicht höflich.<br />
Etwas als &quot;sinnlos&quot; zu bezeichnen, was man (offensichtlich) nicht verstanden hat, ist nicht höflich. Höflich wäre gewesen nachzufragen.<br />
Da du das, in deiner immerwährenden Selbstüberschätzung (aus der die Sicherheit erwächst etwas verstanden zu haben, wenn du es eben nicht verstanden hast), sehr häufig machst, reagiere ich darauf etwas genervt.</p>
<blockquote>
<p>Punkt 2 stimmt weiterhin.</p>
</blockquote>
<p>Punkt 2 ist weiterhin eine Frage der Konvention, ein absolutes Statemend dazu ist dementsprechend weiterhin Blödsinn.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2100626</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2100626</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Mon, 01 Aug 2011 21:37:31 GMT</pubDate></item><item><title><![CDATA[Reply to Name für Basisklasse + Typedef gesucht on Mon, 01 Aug 2011 21:40:13 GMT]]></title><description><![CDATA[<p>camper schrieb:</p>
<blockquote>
<p>Einheitlicher Name, einheitliche Basis für shared_from_this?<br />
Etwas einfallslos: uniform_shared_base und uniform_name?</p>
</blockquote>
<p>Naja...<br />
Der Name des Typedefs sollte schon &quot;die Basisklasse dieses Controls&quot; zum Ausdruck bringen.<br />
Ich glaube ich werde bei &quot;ControlBase&quot; bleiben (evtl. wäre auch &quot;BaseControl&quot; OK).<br />
Fehlt nur noch der Name für die Klasse selbst.<br />
&quot;StandardControlBase&quot; wäre vielleicht was. Hm.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2100627</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2100627</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Mon, 01 Aug 2011 21:40:13 GMT</pubDate></item><item><title><![CDATA[Reply to Name für Basisklasse + Typedef gesucht on Mon, 01 Aug 2011 21:41:14 GMT]]></title><description><![CDATA[<p>Default, Default, Default, ... <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      alt="🤡"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2100628</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2100628</guid><dc:creator><![CDATA[Zeus]]></dc:creator><pubDate>Mon, 01 Aug 2011 21:41:14 GMT</pubDate></item><item><title><![CDATA[Reply to Name für Basisklasse + Typedef gesucht on Mon, 01 Aug 2011 21:44:49 GMT]]></title><description><![CDATA[<p>hustbaer schrieb:</p>
<blockquote>
<p>Es war auf jeden Fall nicht höflich.Etwas als &quot;sinnlos&quot; zu bezeichnen, was man (offensichtlich) nicht verstanden hat, ist nicht höflich. Höflich wäre gewesen nachzufragen.</p>
</blockquote>
<p>Nicht nicht verstanden - vergessen. Das ist ein wesentlicher Unterschied. <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>
<p>hustbaer schrieb:</p>
<blockquote>
<p>Da du das, in deiner immerwährenden Selbstüberschätzung (aus der die Sicherheit erwächst etwas verstanden zu haben, wenn du es eben nicht verstanden hast), sehr häufig machst, reagiere ich darauf etwas genervt.</p>
</blockquote>
<p>Im Nachhinein betrachtet hätte ich wohl auch nicht anders reagiert - ich vergebe dir.</p>
<p>hustbaer schrieb:</p>
<blockquote>
<p>Punkt 2 ist weiterhin eine Frage der Konvention, ein absolutes Statemend dazu ist dementsprechend weiterhin Blödsinn.</p>
</blockquote>
<p>Und diese Konvention hat sich weitestgehend durchgesetzt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2100630</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2100630</guid><dc:creator><![CDATA[314159265358979]]></dc:creator><pubDate>Mon, 01 Aug 2011 21:44:49 GMT</pubDate></item><item><title><![CDATA[Reply to Name für Basisklasse + Typedef gesucht on Mon, 01 Aug 2011 21:54:43 GMT]]></title><description><![CDATA[<p>BTW: da das Thema nun schon aufgegriffen wurde: findet ihr die Verwendung einer solchen Basisklasse + typedef darin auch schlecht/fragwürdig?</p>
<p>Man könnte das natürlich auch alles anders lösen, ganz ohne die &quot;Zwischen-Basisklasse&quot;, nur gefallen mir alle anderen Lösungen (die mir eingefallen sind) noch weniger.</p>
<p>Speziell was das Thema shared_from_this() angeht.</p>
<p>Immer Casten wo der abgeleitete Type gebraucht wird finde ich nicht gut.<br />
Es in jeder abgeleiteten Klasse zu wiederholen finde ich auch nicht gut.<br />
Bliebe noch die Möglichkeit ein Makro zu verwenden, aber ... naja. Den &quot;Aufruf&quot; des Makros müsste man auch in jeder Klasse wiederholen, und ... hmpf. Gefällt mir also auch nicht so richtig.</p>
<p>Das einzige was mich bei der &quot;Zwischen-Basisklasse&quot; stört, ist, dass diverse Tools wie Doxygen sich damit nicht so richtig anfreunden können. Eigentlich sollte die &quot;Zwischen-Basisklasse&quot; in Doxygen Charts gar nicht auftauchen, sondern direkt der &quot;BASE&quot; Typ als Basisklasse. Dazu konnte ich Doxygen aber blöderweise nicht überreden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2100631</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2100631</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Mon, 01 Aug 2011 21:54:43 GMT</pubDate></item><item><title><![CDATA[Reply to Name für Basisklasse + Typedef gesucht on Mon, 01 Aug 2011 21:49:43 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/23275">@314159265358979</a>:<br />
Ja ja, wie du meinst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2100633</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2100633</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Mon, 01 Aug 2011 21:49:43 GMT</pubDate></item><item><title><![CDATA[Reply to Name für Basisklasse + Typedef gesucht on Mon, 01 Aug 2011 21:53:24 GMT]]></title><description><![CDATA[<p>Zeus schrieb:</p>
<blockquote>
<p>Default, Default, Default, ... <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      alt="🤡"
    /></p>
</blockquote>
<p>Default klingt für mich, im Zusammenhang mit C++, immer nach etwas, was man bekommt wenn man irgendwas nicht angibt.<br />
Default-Ctor (keine Parameter angegeben), Default-Argument (kein Argument angegeben), Default-Implementierung (keine Implementierung angegeben, mit SpecialFunction() = default).<br />
Das passt in dem Fall IMO nicht gut.</p>
<p>Standard passt IMO besser. Standard heisst für mich ... naja, dass es eben &quot;Standard&quot; ist, aber man es auch anders machen kann (wenn es gute Gründe dafür gibt).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2100635</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2100635</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Mon, 01 Aug 2011 21:53:24 GMT</pubDate></item><item><title><![CDATA[Reply to Name für Basisklasse + Typedef gesucht on Mon, 01 Aug 2011 21:55:00 GMT]]></title><description><![CDATA[<p>hustbaer schrieb:</p>
<blockquote>
<p>Zeus schrieb:</p>
<blockquote>
<p>Default, Default, Default, ... <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      alt="🤡"
    /></p>
</blockquote>
<p>...</p>
</blockquote>
<p>Das war ein Joke von einen Java-Programmierer <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61b.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_tongue"
      title=":P"
      alt="😛"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2100636</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2100636</guid><dc:creator><![CDATA[Zeus]]></dc:creator><pubDate>Mon, 01 Aug 2011 21:55:00 GMT</pubDate></item><item><title><![CDATA[Reply to Name für Basisklasse + Typedef gesucht on Mon, 01 Aug 2011 21:56:17 GMT]]></title><description><![CDATA[<p>Zeus schrieb:</p>
<blockquote>
<p>hustbaer schrieb:</p>
<blockquote>
<p>Zeus schrieb:</p>
<blockquote>
<p>Default, Default, Default, ... <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      alt="🤡"
    /></p>
</blockquote>
<p>...</p>
</blockquote>
<p>Das war ein Joke von einen Java-Programmierer <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61b.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_tongue"
      title=":P"
      alt="😛"
    /></p>
</blockquote>
<p>Den verstehe ich nicht <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="😕"
    /><br />
<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/2100637</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2100637</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Mon, 01 Aug 2011 21:56:17 GMT</pubDate></item><item><title><![CDATA[Reply to Name für Basisklasse + Typedef gesucht on Mon, 01 Aug 2011 22:09:00 GMT]]></title><description><![CDATA[<p>hustbaer schrieb:</p>
<blockquote>
<p>BTW: da das Thema nun schon aufgegriffen wurde: findet ihr die Verwendung einer solchen Basisklasse + typedef darin auch schlecht/fragwürdig?</p>
</blockquote>
<p>Es ist immerhin eine weitere Abtraktion, die ich erst lernen muß. Ich hasse Abstraktionen, die sich nicht aus den Begriffen der Programmlogik ergeben.<br />
Wenn ich recht sehe, willst Du nur...</p>
<pre><code class="language-cpp">class HappyFooControl : public FooControl
{
public:
    typedef FooControl Base;//...nur diese kleine Zeile automagisieren

    using Base::SomeFunction();

    virtual void SomeOverride()
    {
        Base::SomeOverride();
        Whatever();
    }
};
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2100640</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2100640</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Mon, 01 Aug 2011 22:09:00 GMT</pubDate></item><item><title><![CDATA[Reply to Name für Basisklasse + Typedef gesucht on Mon, 01 Aug 2011 22:10:19 GMT]]></title><description><![CDATA[<p>Offtopic for only one, hustbear - a litte pattern:</p>
<pre><code class="language-java">public interface AbilityOne { void one(); }
public interface AbilityTwo { void two(); }

public class DefaultOne implements AbilityOne {
    <a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/17722">@Override</a>
    public void one() {
        System.out.println(&quot;rly i am meaningful&quot;);
    }
}

public class DefaultTwo implements AbilityTwo {
    <a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/17722">@Override</a>
    public void two() {
        System.out.println(&quot;sure i am meaningful&quot;);        
    }
}

public abstract class AbstractMeaningful implements AbilityOne, AbilityTwo {

}

public class DefaultMeaningful extends AbstractMeaningful {

    private AbilityOne one = new DefaultOne();
    private AbilityTwo two = new DefaultTwo();

    <a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/17722">@Override</a>
    public void one() {
        one.one();
    }

    <a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/17722">@Override</a>
    public void two() {
        two.two();
    }

}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2100641</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2100641</guid><dc:creator><![CDATA[Zeus]]></dc:creator><pubDate>Mon, 01 Aug 2011 22:10:19 GMT</pubDate></item><item><title><![CDATA[Reply to Name für Basisklasse + Typedef gesucht on Mon, 01 Aug 2011 22:12:47 GMT]]></title><description><![CDATA[<p>hustbaer schrieb:</p>
<blockquote>
<p>Bfindet ihr die Verwendung einer solchen Basisklasse + typedef darin auch schlecht/fragwürdig?</p>
<p>Man könnte das natürlich auch alles anders lösen, ganz ohne die &quot;Zwischen-Basisklasse&quot;, nur gefallen mir alle anderen Lösungen (die mir eingefallen sind) noch weniger.</p>
</blockquote>
<p>Ich find's ok. Nicht optimal, aber man schreibt idR selten eigene Controls, da ist kurze Einarbeitungszeit in Ordnung. Anwesenheit des typedefs ist ok wenn man ohne Nachschlagen/Intellisense sieht, dass eben jenes Parent damit gemeint ist.</p>
<p>Rein aus Interesse: Woran liegt es denn, dass man nicht einfach nur von direkt Control ableiten kann? Oder spezifische Hilfsfunktionen?</p>
<p>hustbaer schrieb:</p>
<blockquote>
<p>Speziell was das Thema shared_from_this() angeht.</p>
</blockquote>
<p>Das &quot;spezialisieren&quot; von shared_from_this finde ich eine coole Idee, hab ich so noch nicht gesehen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2100642</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2100642</guid><dc:creator><![CDATA[fdfdg]]></dc:creator><pubDate>Mon, 01 Aug 2011 22:12:47 GMT</pubDate></item></channel></rss>