<?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[supertype und subtype: Ctor?]]></title><description><![CDATA[<p>servus gemeinde,</p>
<p>an die profis mal eine frage:<br />
es sollen parameter verschiedenster struktur behandelt werden. dazu wird eine klasse definiert, die alle parameter-strukturen kapseln soll. sie enthält einzig den typ-bezeichner (zb als int) der parameter-struktur:</p>
<pre><code>class Param
{
	public:
		Param(int type);
		~Param();

		int getType(void);

	private:
		int type;

};
Param::Param(int t=0) : type(t) {}
Param::~Param() {}
int Param::getType() { return type; }
</code></pre>
<p>soweit sogut.</p>
<p>nun soll es abgeleitete klassen Param_1, ... , Param_n geben, welche eine beliebige innere struktur aufweisen. (immer noch nix aufregendes.)<br />
die klassen Param_1.._n sollen aber über den ctor Param(int t) konstruierbar sein, welcher den ctor Param_t() aufruft und ein objekt vom typ Param_t liefert.</p>
<p>wie würdet ihr das lösen?</p>
<p>- rein durch ctor Param() lösbar?<br />
- new() überschreiben?<br />
- template Param&lt;t&gt;?<br />
- gibts ein design pattern?<br />
- oder komplett sinnlos?</p>
<p>grüße</p>
<p>moik</p>
<p><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/145121/supertype-und-subtype-ctor</link><generator>RSS for Node</generator><lastBuildDate>Wed, 02 Sep 2026 21:36:03 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/145121.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 25 Apr 2006 08:27:58 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to supertype und subtype: Ctor? on Tue, 25 Apr 2006 08:27:58 GMT]]></title><description><![CDATA[<p>servus gemeinde,</p>
<p>an die profis mal eine frage:<br />
es sollen parameter verschiedenster struktur behandelt werden. dazu wird eine klasse definiert, die alle parameter-strukturen kapseln soll. sie enthält einzig den typ-bezeichner (zb als int) der parameter-struktur:</p>
<pre><code>class Param
{
	public:
		Param(int type);
		~Param();

		int getType(void);

	private:
		int type;

};
Param::Param(int t=0) : type(t) {}
Param::~Param() {}
int Param::getType() { return type; }
</code></pre>
<p>soweit sogut.</p>
<p>nun soll es abgeleitete klassen Param_1, ... , Param_n geben, welche eine beliebige innere struktur aufweisen. (immer noch nix aufregendes.)<br />
die klassen Param_1.._n sollen aber über den ctor Param(int t) konstruierbar sein, welcher den ctor Param_t() aufruft und ein objekt vom typ Param_t liefert.</p>
<p>wie würdet ihr das lösen?</p>
<p>- rein durch ctor Param() lösbar?<br />
- new() überschreiben?<br />
- template Param&lt;t&gt;?<br />
- gibts ein design pattern?<br />
- oder komplett sinnlos?</p>
<p>grüße</p>
<p>moik</p>
<p><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/1044634</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1044634</guid><dc:creator><![CDATA[moik]]></dc:creator><pubDate>Tue, 25 Apr 2006 08:27:58 GMT</pubDate></item><item><title><![CDATA[Reply to supertype und subtype: Ctor? on Tue, 25 Apr 2006 08:32:05 GMT]]></title><description><![CDATA[<p>Ich weiß nicht, ob ich dich richtig verstanden habe. Aber du könntest so etwas zusammenbasteln:</p>
<pre><code class="language-cpp">class Param_1 : public Param
{
public:
  Param_1(const Param&amp; p)
  {
    if(p.getType()!=1) throw std::exception;
    ...
  }
};
</code></pre>
<p>(aber ich halte den Ansatz für &quot;komplett sinnlos&quot; - was hast du denn überhaupt vor?)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1044636</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1044636</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Tue, 25 Apr 2006 08:32:05 GMT</pubDate></item><item><title><![CDATA[Reply to supertype und subtype: Ctor? on Tue, 25 Apr 2006 08:37:32 GMT]]></title><description><![CDATA[<p><a href="http://www.boost.org/libs/any/index.html" rel="nofollow">boost::any</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1044639</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1044639</guid><dc:creator><![CDATA[Any]]></dc:creator><pubDate>Tue, 25 Apr 2006 08:37:32 GMT</pubDate></item><item><title><![CDATA[Reply to supertype und subtype: Ctor? on Tue, 25 Apr 2006 09:13:51 GMT]]></title><description><![CDATA[<p>hallo CStoll.</p>
<p>rauskommen soll eine lib, die folgenden code ermöglicht:</p>
<pre><code>Param p2 = new Param(2);
</code></pre>
<p>(oder ähnlich. von mir aus auch mit templates)<br />
die innere struktur von p2 soll aber durch den ctor Param_2() gegeben sein, welcher hier nicht explizit aufgerufen werden soll, sondern &quot;geblackboxed&quot; ist.</p>
<p>@any: genau in die richtung gehts (boost::any punkt 2)</p>
<p>auch mit bordmittel möglich?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1044661</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1044661</guid><dc:creator><![CDATA[moik]]></dc:creator><pubDate>Tue, 25 Apr 2006 09:13:51 GMT</pubDate></item><item><title><![CDATA[Reply to supertype und subtype: Ctor? on Tue, 25 Apr 2006 09:28:29 GMT]]></title><description><![CDATA[<p>Du kannst natürlich boost::any selber implementieren, aber du kannst den gespeicherten Typ nicht direkt in der any-Klasse (oder wie du sie auch nennen willst) speichern. Denn die muss für alle Typen gleich sein, der gespeicherte Typ, wird bei boost::any in ner template-klasse gespeichert welche ne gemeinsame Basisklasse haben und über diese wird der Typ dann angesprochen.<br />
Den Typ kann du aus boost::any nur mit einem (erfolgreichen) any_cast holen, du musst also den Typ kennen um mit ihm arbeiten zu können.</p>
<p>Ob du solch eine hohe Typsicherheit wie bei boost::any willst, musst du dann für dich entscheiden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1044675</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1044675</guid><dc:creator><![CDATA[Any]]></dc:creator><pubDate>Tue, 25 Apr 2006 09:28:29 GMT</pubDate></item><item><title><![CDATA[Reply to supertype und subtype: Ctor? on Tue, 25 Apr 2006 11:25:08 GMT]]></title><description><![CDATA[<p>dank you!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1044750</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1044750</guid><dc:creator><![CDATA[moik]]></dc:creator><pubDate>Tue, 25 Apr 2006 11:25:08 GMT</pubDate></item></channel></rss>