<?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[Unschöne protected Variable umgehen]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe leider auf die Schnelle nichts Passendes in der Forensuche gefunden, deshalb poste ich mal mein Problem.</p>
<p>Ich habe zwei von der selben Klasse abgeleitete Klassen, die sich im Wesentlichen in einer Funktion von der Basisklasse unterscheiden. Die Funktion heißt zwar immer gleich, soll aber bei den abgeleiteten Klassen je nach Klasse etwas anders arbeiten. Die Funktionen arbeiten mit einer Membervariable der Basisklasse, die dafür ja nicht private sein darf, also ist sie zumindest protected. Ich habe aber gelesen, dass es unüblich, weil wartungsintensiv, ist, Variablen protected zu setzen. Wie kann ich das umgehen? Mit Getter- und Setterfunktionen?</p>
<p>LG, Korbinian</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/302782/unschöne-protected-variable-umgehen</link><generator>RSS for Node</generator><lastBuildDate>Tue, 11 Aug 2026 03:12:31 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/302782.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 26 Apr 2012 20:46:56 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Unschöne protected Variable umgehen on Thu, 26 Apr 2012 20:46:56 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich habe leider auf die Schnelle nichts Passendes in der Forensuche gefunden, deshalb poste ich mal mein Problem.</p>
<p>Ich habe zwei von der selben Klasse abgeleitete Klassen, die sich im Wesentlichen in einer Funktion von der Basisklasse unterscheiden. Die Funktion heißt zwar immer gleich, soll aber bei den abgeleiteten Klassen je nach Klasse etwas anders arbeiten. Die Funktionen arbeiten mit einer Membervariable der Basisklasse, die dafür ja nicht private sein darf, also ist sie zumindest protected. Ich habe aber gelesen, dass es unüblich, weil wartungsintensiv, ist, Variablen protected zu setzen. Wie kann ich das umgehen? Mit Getter- und Setterfunktionen?</p>
<p>LG, Korbinian</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2205931</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2205931</guid><dc:creator><![CDATA[Korbsen]]></dc:creator><pubDate>Thu, 26 Apr 2012 20:46:56 GMT</pubDate></item><item><title><![CDATA[Reply to Unschöne protected Variable umgehen on Thu, 26 Apr 2012 20:55:13 GMT]]></title><description><![CDATA[<p>Zum Beispiel. Du könntest vielleicht auch das Strategy Pattern benutzen und dir so die ganze Klassenhierarchie sparen. Aber dafür wissen wir noch zu wenig über dein Problem.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2205933</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2205933</guid><dc:creator><![CDATA[Michael E.]]></dc:creator><pubDate>Thu, 26 Apr 2012 20:55:13 GMT</pubDate></item><item><title><![CDATA[Reply to Unschöne protected Variable umgehen on Thu, 26 Apr 2012 21:03:09 GMT]]></title><description><![CDATA[<p>Ich sehe in so einem Fall eigentlich keinen Grund, nicht protected zu verwenden. Dafür ist es ja irgendwie da.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2205934</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2205934</guid><dc:creator><![CDATA[kleiner Troll]]></dc:creator><pubDate>Thu, 26 Apr 2012 21:03:09 GMT</pubDate></item><item><title><![CDATA[Reply to Unschöne protected Variable umgehen on Thu, 26 Apr 2012 21:06:02 GMT]]></title><description><![CDATA[<p>kleiner Troll schrieb:</p>
<blockquote>
<p>Ich sehe in so einem Fall eigentlich keinen Grund, nicht protected zu verwenden. Dafür ist es ja irgendwie da.</p>
</blockquote>
<p>Dass du keinen Grund siehst kann ich mir schon vorstellen.</p>
<p>Aber die Erfahrung hat gezeigt, dass es zu schlecht wartbarem Code fuehren kann, wenn man protected verwendet. Genaueres kann man zum Beispiel in Effective C++ von Meyers nachlesen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2205935</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2205935</guid><dc:creator><![CDATA[icarus2]]></dc:creator><pubDate>Thu, 26 Apr 2012 21:06:02 GMT</pubDate></item><item><title><![CDATA[Reply to Unschöne protected Variable umgehen on Thu, 26 Apr 2012 21:26:14 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">#include &lt;vector&gt;

class Base
{
public:
    virtual ~Base(){}

    void foo()
    {
        foo_core( a );
    }

private:
    int a;

    virtual void foo_core( int value ) = 0;
};

class A : public Base
{
private:
    virtual void foo_core( int value )
    {
        int a = 5 + value;
    }
};

class B : public Base
{
private:
   virtual void foo_core( int value )
   {
        int summe = 0;
        for( int i = 0; i &lt; value; ++i )
        {
            summe += i;
        }
   }
};

int main()
{
    std::vector&lt;Base*&gt; t = { new A, new B };
    std::vector&lt;Base*&gt;::iterator base = t.begin();
    for ( ; base != t.end(); ++base )
    {
        ( *base )-&gt;foo();
    }
    return 0
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2205938</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2205938</guid><dc:creator><![CDATA[Travor]]></dc:creator><pubDate>Thu, 26 Apr 2012 21:26:14 GMT</pubDate></item><item><title><![CDATA[Reply to Unschöne protected Variable umgehen on Thu, 26 Apr 2012 21:44:41 GMT]]></title><description><![CDATA[<p>Klingt irgendwie so, als ob die Membervariable eben nicht in die Basisklasse gehört, oder die Basisklasse überhaupt keine Basisklasse sein sollte...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2205940</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2205940</guid><dc:creator><![CDATA[dot]]></dc:creator><pubDate>Thu, 26 Apr 2012 21:44:41 GMT</pubDate></item><item><title><![CDATA[Reply to Unschöne protected Variable umgehen on Thu, 26 Apr 2012 22:26:38 GMT]]></title><description><![CDATA[<p>Hallo,<br />
vielen Dank für die schnellen Antworten! Dass das ganze ein wenig umständlich ist, ist mir klar, aber es ist eine Übungsaufgabe und die Struktur ist so vorgegeben.<br />
Ich bin noch Anfänger und deshalb geht das alles nicht so schnell, werd mich am Wochenende mit dem geposteten Code befassen, dann meld ich mich wieder! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
<p>LG</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2205948</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2205948</guid><dc:creator><![CDATA[Korbsen]]></dc:creator><pubDate>Thu, 26 Apr 2012 22:26:38 GMT</pubDate></item><item><title><![CDATA[Reply to Unschöne protected Variable umgehen on Fri, 27 Apr 2012 13:05:30 GMT]]></title><description><![CDATA[<p>Ich konnte das Problem doch mit den Getter- und Setterfunktionen der Basisklasse lösen, hatte gestern nur einen Syntaxfehler bei der Verwendung von this.</p>
<p>Hier der Code zu der Methode Einer der abgeleiteten Klassen:</p>
<pre><code class="language-cpp">// CForwardCounter.cpp

#include &quot;CForwardCounter.h&quot;

void CForwardCounter::count() //Zaehlt Eins weiter
{
	this-&gt;setValue(this-&gt;getValue() + 1 );
}
</code></pre>
<p>LG</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2206133</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2206133</guid><dc:creator><![CDATA[Korbsen]]></dc:creator><pubDate>Fri, 27 Apr 2012 13:05:30 GMT</pubDate></item></channel></rss>