<?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[Desingfrage?]]></title><description><![CDATA[<p>folgende Basis Klasse (verwaltet Elemente/Knoten):</p>
<pre><code class="language-cpp">class Base{

public:
  class Elem{

  protected;
     int ElemBaseData;

  };
private:
  std::list&lt;*Elem&gt; data;
.
.
.
protected:
  int BasePara;
};
</code></pre>
<p>Von dieser Klassenstruzktur, werden dann erweiterte Klassen strukturen Mo11/ Mod2 abgeleitet:</p>
<pre><code class="language-cpp">class Mod1 : public Base{

  class Mod1Elem : public Base::Elem{

     int Mod1ElemData;

   };
  int Mo11Data;
};

class Mod2 : public Base{

  class Mod2Elem : public Base::Elem{

     int Mod2ElemData;

   };
  int Mo12Data;
};
</code></pre>
<p>Ist so eine art der Vererbung sinnvoll? Könnte man doch im prinzip auch mit einem Template machen oder?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/190552/desingfrage</link><generator>RSS for Node</generator><lastBuildDate>Fri, 25 Sep 2026 17:42:47 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/190552.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 24 Aug 2007 04:08:26 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Desingfrage? on Fri, 24 Aug 2007 04:08:26 GMT]]></title><description><![CDATA[<p>folgende Basis Klasse (verwaltet Elemente/Knoten):</p>
<pre><code class="language-cpp">class Base{

public:
  class Elem{

  protected;
     int ElemBaseData;

  };
private:
  std::list&lt;*Elem&gt; data;
.
.
.
protected:
  int BasePara;
};
</code></pre>
<p>Von dieser Klassenstruzktur, werden dann erweiterte Klassen strukturen Mo11/ Mod2 abgeleitet:</p>
<pre><code class="language-cpp">class Mod1 : public Base{

  class Mod1Elem : public Base::Elem{

     int Mod1ElemData;

   };
  int Mo11Data;
};

class Mod2 : public Base{

  class Mod2Elem : public Base::Elem{

     int Mod2ElemData;

   };
  int Mo12Data;
};
</code></pre>
<p>Ist so eine art der Vererbung sinnvoll? Könnte man doch im prinzip auch mit einem Template machen oder?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1350822</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1350822</guid><dc:creator><![CDATA[BorisDieKlinge]]></dc:creator><pubDate>Fri, 24 Aug 2007 04:08:26 GMT</pubDate></item><item><title><![CDATA[Reply to Desingfrage? on Mon, 27 Aug 2007 04:08:18 GMT]]></title><description><![CDATA[<p>Niemand ne Idee, Kritik, Alternativen?</p>
<p>Noch was zur Sturktur:</p>
<p>Die Klasse Mod1 soll nur Objekte des Typs Mod1Elem enthalten, und Mod2 Objekt des Typs Mod2Elem!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1352677</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1352677</guid><dc:creator><![CDATA[BorisDieKlinge]]></dc:creator><pubDate>Mon, 27 Aug 2007 04:08:18 GMT</pubDate></item><item><title><![CDATA[Reply to Desingfrage? on Mon, 27 Aug 2007 05:18:31 GMT]]></title><description><![CDATA[<p>hola</p>
<p>warum eigendlich nested classes?<br />
ich seh zumindest in deinem beispiel keinen grund dafuer.<br />
insofern ist es schwierig zu sagen welches design besser waere.<br />
Falls du aus irgendeinem grund mit dem design nicht zu frienden bist, solltest du den eventuell auch erwaehnen.</p>
<p>Meep Meep</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1352681</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1352681</guid><dc:creator><![CDATA[Meep Meep]]></dc:creator><pubDate>Mon, 27 Aug 2007 05:18:31 GMT</pubDate></item><item><title><![CDATA[Reply to Desingfrage? on Mon, 27 Aug 2007 05:21:18 GMT]]></title><description><![CDATA[<p>naja die verschachtelung ist hat den grund, da die Base klasse BaseElem objekte verwaltet... (ne art zusammengehörigkeit)</p>
<p>Zufrieden bin ich nich ganz... bzw. würd gern wissen wie man sowas noch anders machen könnte...??</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1352684</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1352684</guid><dc:creator><![CDATA[BorisDieKlinge]]></dc:creator><pubDate>Mon, 27 Aug 2007 05:21:18 GMT</pubDate></item><item><title><![CDATA[Reply to Desingfrage? on Mon, 27 Aug 2007 05:38:48 GMT]]></title><description><![CDATA[<p>jeh nach dem was genau du machen willst und wie du dann deine Elems einsetzen willst.</p>
<pre><code class="language-cpp">class BaseElem
{
   ...
};

class Base
{
   ...
   protected:
      std::list&lt;BaseElem*&gt; liste;
};

class ModElem1 : public BaseElem
{
   ...
};
class ModElem2 : public BaseElem
{
   ...
};

template&lt;class T&gt;
class ModBase : public Base
{
   public:
      T mod_elem_x;
      ...
};
</code></pre>
<p>waere eventuell auch eine loesung. nur fraglich ob es ne loesung fuer deine aufgabenstellung ist.</p>
<p>Meep Meep</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1352690</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1352690</guid><dc:creator><![CDATA[Meep Meep]]></dc:creator><pubDate>Mon, 27 Aug 2007 05:38:48 GMT</pubDate></item><item><title><![CDATA[Reply to Desingfrage? on Mon, 27 Aug 2007 05:51:29 GMT]]></title><description><![CDATA[<p>Nehmen wir an es sähe so aus:</p>
<pre><code class="language-cpp">class Elem{
....
};

class Base{

std::list&lt;Elem*&gt; data;

};

class ElemA : public Elem{

};
class ElemB : public Elem{

};

class BaseA : public Base{

};

class BaseB : public Base{

};
</code></pre>
<p>wie könnte ich nunr ereichen, das BaseA nur ElemA Objekte enthält, und BaseB nur ElemB Objekte?? Wenn du verstehst was ich meine....</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1352695</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1352695</guid><dc:creator><![CDATA[BorisDieKlinge]]></dc:creator><pubDate>Mon, 27 Aug 2007 05:51:29 GMT</pubDate></item><item><title><![CDATA[Reply to Desingfrage? on Mon, 27 Aug 2007 06:03:28 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">class BaseElem { };
class ModElem1 : public BaseElem { };
class ModElem2 : public BaseElem { };

template&lt;class T&gt;
class Base
{
   ...
   std::list&lt;T*&gt; liste;
};

typedef Base&lt;ModElem1&gt; BaseMod1;
typedef Base&lt;ModElem2&gt; BaseMod2;
</code></pre>
<p>Meep Meep</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1352699</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1352699</guid><dc:creator><![CDATA[Meep Meep]]></dc:creator><pubDate>Mon, 27 Aug 2007 06:03:28 GMT</pubDate></item><item><title><![CDATA[Reply to Desingfrage? on Mon, 27 Aug 2007 06:11:07 GMT]]></title><description><![CDATA[<p>ok gut, aber wenn nun BaseMod1 bzw. BasMod2 noch zusätzliche member attribute hat, muss ich ja diese von Base ableiten...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1352702</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1352702</guid><dc:creator><![CDATA[BorisDieKlinge]]></dc:creator><pubDate>Mon, 27 Aug 2007 06:11:07 GMT</pubDate></item><item><title><![CDATA[Reply to Desingfrage? on Mon, 27 Aug 2007 06:15:37 GMT]]></title><description><![CDATA[<p>BorisDieKlinge schrieb:</p>
<blockquote>
<p>ok gut, aber wenn nun BaseMod1 bzw. BasMod2 noch zusätzliche member attribute hat, muss ich ja diese von Base ableiten...</p>
</blockquote>
<p>naju dann vielleicht so:</p>
<pre><code class="language-cpp">class BaseElem { };
class ModElem1 : public BaseElem { };
class ModElem2 : public BaseElem { };

template&lt;class T&gt;
class Base
{
   ...
   std::list&lt;T*&gt; liste;
};

class BaseMod1 : public Base&lt;ModElem1&gt;
{
   int value;
};

class BaseMod2 : public Base&lt;ModElem2&gt;
{
   float value;
};
</code></pre>
<p>Meep Meep</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1352703</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1352703</guid><dc:creator><![CDATA[Meep Meep]]></dc:creator><pubDate>Mon, 27 Aug 2007 06:15:37 GMT</pubDate></item></channel></rss>