<?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[Designfrage]]></title><description><![CDATA[<p>hi</p>
<p>ich habe eine basisklasse</p>
<pre><code class="language-cpp">class Base
{
public:
   // Funktionen mit denen man das Handle verschieben, vergrößern usw kann.
private:
   Handle* m_handle;
};
</code></pre>
<p>und dann habe ich eine Klasse die von der klasse &quot;Base&quot; erbt.</p>
<pre><code class="language-cpp">class Derived : public Base
{
public:
   // noch mehr funktionen um das handle in &quot;Base&quot; zu steuern.
};
</code></pre>
<p>nun stellt sich die frage, wie greife ich auf das handle von base aus derived zu?<br />
wie würdet ihr das machen?</p>
<p>danke!</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/266727/designfrage</link><generator>RSS for Node</generator><lastBuildDate>Wed, 02 Sep 2026 23:42:54 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/266727.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 13 May 2010 10:38:35 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Designfrage on Thu, 13 May 2010 10:38:35 GMT]]></title><description><![CDATA[<p>hi</p>
<p>ich habe eine basisklasse</p>
<pre><code class="language-cpp">class Base
{
public:
   // Funktionen mit denen man das Handle verschieben, vergrößern usw kann.
private:
   Handle* m_handle;
};
</code></pre>
<p>und dann habe ich eine Klasse die von der klasse &quot;Base&quot; erbt.</p>
<pre><code class="language-cpp">class Derived : public Base
{
public:
   // noch mehr funktionen um das handle in &quot;Base&quot; zu steuern.
};
</code></pre>
<p>nun stellt sich die frage, wie greife ich auf das handle von base aus derived zu?<br />
wie würdet ihr das machen?</p>
<p>danke!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1896584</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1896584</guid><dc:creator><![CDATA[mhhhhhm]]></dc:creator><pubDate>Thu, 13 May 2010 10:38:35 GMT</pubDate></item><item><title><![CDATA[Reply to Designfrage on Thu, 13 May 2010 10:44:20 GMT]]></title><description><![CDATA[<p>Protected Getter für den Handler in Base bereitstellen, oder</p>
<p>Methoden, die du in Derived schreiben willst stattdessen in Base schreiben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1896585</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1896585</guid><dc:creator><![CDATA[Zeus]]></dc:creator><pubDate>Thu, 13 May 2010 10:44:20 GMT</pubDate></item><item><title><![CDATA[Reply to Designfrage on Thu, 13 May 2010 10:55:53 GMT]]></title><description><![CDATA[<p>hallo zeus!</p>
<p>danke für deine antwort.</p>
<p>die 1. variante hatte ich auch schon im sinn, aber dann wäre der getter in derived public.<br />
die 2. variante ist ungünstig, weil es noch mehr derived klassen gibt -&gt; codeverdoppelung.</p>
<p>gibt es keinen besseren Weg? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1896587</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1896587</guid><dc:creator><![CDATA[mhhhhhm]]></dc:creator><pubDate>Thu, 13 May 2010 10:55:53 GMT</pubDate></item><item><title><![CDATA[Reply to Designfrage on Thu, 13 May 2010 10:58:52 GMT]]></title><description><![CDATA[<p>Sichtbarkeitsbereich auf protected stellen, dafür ist er da.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1896588</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1896588</guid><dc:creator><![CDATA[Janjan]]></dc:creator><pubDate>Thu, 13 May 2010 10:58:52 GMT</pubDate></item><item><title><![CDATA[Reply to Designfrage on Thu, 13 May 2010 10:59:11 GMT]]></title><description><![CDATA[<blockquote>
<p>die 1. variante hatte ich auch schon im sinn, aber dann wäre der getter in derived public.</p>
</blockquote>
<p>Nein, eben nicht, der soll ja genau protected sein!<br />
Simon</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1896589</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1896589</guid><dc:creator><![CDATA[theta]]></dc:creator><pubDate>Thu, 13 May 2010 10:59:11 GMT</pubDate></item><item><title><![CDATA[Reply to Designfrage on Thu, 13 May 2010 10:59:38 GMT]]></title><description><![CDATA[<p>mhhhhhm schrieb:</p>
<blockquote>
<p>die 1. variante hatte ich auch schon im sinn, aber dann wäre der getter in derived public.</p>
</blockquote>
<p>Nein. Wenn der Getter in Base protected ist und derived public erbt, ist der getter in Derived trotzdem protected.</p>
<blockquote>
<p>die 2. variante ist ungünstig, weil es noch mehr derived klassen gibt -&gt; codeverdoppelung.</p>
</blockquote>
<p>Wenn das was du im einen derived mit dem handler machst, das Selbe ist was du im anderen derived machst, dann gehört die Methode in die Basisklasse, um Codeverdopplung zu vermeiden.<br />
Wenn du in den verschiedenen deriveds verschiedenes mit dem Handler machst, gehörts in die deriveds und du brauchst den protected Getter.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1896590</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1896590</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Thu, 13 May 2010 10:59:38 GMT</pubDate></item><item><title><![CDATA[Reply to Designfrage on Thu, 13 May 2010 11:07:25 GMT]]></title><description><![CDATA[<p>Wobei man <code>protected</code> im allgemeinen mit <code>public</code> fast gleichsetzen kann:</p>
<pre><code class="language-cpp">class base
{
private:
  handler* m_handler;

protected:
  handler* get_handler() { return m_handler; }
};

class derived
  : public base
{
public:
  handler* get_handler() { return base::get_handler(); }
};
</code></pre>
<p>Der Zugriff kann somit durchaus auch fraglich sein, ob das Design der Hierarchie korrekt ist. Grundsätzlich (Richtlinie) sollten abgeleitete Klassen nie auf die privaten Member der Basisklasse zugreifen müssen.</p>
<p>Grüssli</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1896597</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1896597</guid><dc:creator><![CDATA[Dravere]]></dc:creator><pubDate>Thu, 13 May 2010 11:07:25 GMT</pubDate></item><item><title><![CDATA[Reply to Designfrage on Thu, 13 May 2010 11:07:52 GMT]]></title><description><![CDATA[<p>oh so war das!</p>
<p>na dann vielen dank leute! <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/1896598</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1896598</guid><dc:creator><![CDATA[mhhhhhm]]></dc:creator><pubDate>Thu, 13 May 2010 11:07:52 GMT</pubDate></item></channel></rss>