<?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[Klassendesign Problem]]></title><description><![CDATA[<p>ich erstellen grade ein paar Strukturen welche belehrbar sind,<br />
dabei stosse ich immer wieder auf folgendes problem<br />
z.B.</p>
<pre><code class="language-cpp">class MemoryCell
{};

class Adaptable_MemoryCell : public MemoryCell
{};
</code></pre>
<p>Der Sinn ist, das eine MemoryCell nur berechnet, und nicht belehrt werden muss.<br />
Das Problem tritt nun auf :</p>
<pre><code class="language-cpp">class MemoryBlock
{
private :
std::vector&lt;MemoryCell&gt; m_cells;
};

class Adaptable_MemoryBlock : public MemoryBlock
{

private :
std::vector&lt;Adaptable_MemoryCell&gt; m_cells;
};
</code></pre>
<p>Wie mache ich es denn nun, das ich nicht 2 verschiedene vectoren habe?<br />
Beim schreiben ist mir eingefallen, das es mit virtual gehen würde,<br />
indem man Pointer in die Vectoren packt, und je nach klasse<br />
einmal mit baseclass, und das andere mal mit derived befüllt</p>
<p>Aber gibts dafür auch andere Möglichkeiten?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/210381/klassendesign-problem</link><generator>RSS for Node</generator><lastBuildDate>Tue, 13 Oct 2026 10:36:30 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/210381.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 10 Apr 2008 11:48:54 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Klassendesign Problem on Thu, 10 Apr 2008 11:48:54 GMT]]></title><description><![CDATA[<p>ich erstellen grade ein paar Strukturen welche belehrbar sind,<br />
dabei stosse ich immer wieder auf folgendes problem<br />
z.B.</p>
<pre><code class="language-cpp">class MemoryCell
{};

class Adaptable_MemoryCell : public MemoryCell
{};
</code></pre>
<p>Der Sinn ist, das eine MemoryCell nur berechnet, und nicht belehrt werden muss.<br />
Das Problem tritt nun auf :</p>
<pre><code class="language-cpp">class MemoryBlock
{
private :
std::vector&lt;MemoryCell&gt; m_cells;
};

class Adaptable_MemoryBlock : public MemoryBlock
{

private :
std::vector&lt;Adaptable_MemoryCell&gt; m_cells;
};
</code></pre>
<p>Wie mache ich es denn nun, das ich nicht 2 verschiedene vectoren habe?<br />
Beim schreiben ist mir eingefallen, das es mit virtual gehen würde,<br />
indem man Pointer in die Vectoren packt, und je nach klasse<br />
einmal mit baseclass, und das andere mal mit derived befüllt</p>
<p>Aber gibts dafür auch andere Möglichkeiten?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1489669</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1489669</guid><dc:creator><![CDATA[Frager]]></dc:creator><pubDate>Thu, 10 Apr 2008 11:48:54 GMT</pubDate></item><item><title><![CDATA[Reply to Klassendesign Problem on Thu, 10 Apr 2008 12:13:48 GMT]]></title><description><![CDATA[<p>Du willst Speicherzellen belehren? Viel Erfolg.</p>
<p>Ich wuerde eine weitere (abstrakte) Basisklasse in Form eines Templates einfuehren, welche den eigentlichen Vektor haelt.</p>
<pre><code class="language-cpp">template&lt;typename T&gt;
class Whatever
{
protected:
  std::vector&lt;T&gt; m_cells;

public:
  virtual ~Whatever();
};

class MemoryBlock: public Whatever&lt;MemoryCell&gt;
{
};

class Adaptable_MemoryBlock : public Whatever&lt;Adaptable_MemoryCell&gt;
{
};
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1489678</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1489678</guid><dc:creator><![CDATA[DeSoVoDaMu]]></dc:creator><pubDate>Thu, 10 Apr 2008 12:13:48 GMT</pubDate></item><item><title><![CDATA[Reply to Klassendesign Problem on Thu, 10 Apr 2008 12:18:36 GMT]]></title><description><![CDATA[<p>DeSoVoDaMu schrieb:</p>
<blockquote>
<p>Du willst Speicherzellen belehren? Viel Erfolg.</p>
<p>Ich wuerde eine weitere (abstrakte) Basisklasse in Form eines Templates einfuehren, welche den eigentlichen Vektor haelt.</p>
<pre><code class="language-cpp">template&lt;typename T&gt;
class Whatever
{
protected:
  std::vector&lt;T&gt; m_cells;

public:
  virtual ~Whatever();
};

class MemoryBlock: public Whatever&lt;MemoryCell&gt;
{
};

class Adaptable_MemoryBlock : public Whatever&lt;Adaptable_MemoryCell&gt;
{
};
</code></pre>
</blockquote>
<p>ok, ich haue mich mal selbst, das ich darauf nicht gekommen bin ...<br />
Danke.</p>
<p>Wegen den Speicherzellen :</p>
<p>siehe LSTM : <a href="ftp://ftp.idsia.ch/pub/juergen/lstm.pdf" rel="nofollow">ftp://ftp.idsia.ch/pub/juergen/lstm.pdf</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1489686</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1489686</guid><dc:creator><![CDATA[Frager]]></dc:creator><pubDate>Thu, 10 Apr 2008 12:18:36 GMT</pubDate></item></channel></rss>