<?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[auf private Elemente einer Verwandte&#x2F;gleiche Klasse zugreifen??]]></title><description><![CDATA[<p>bsp.:</p>
<pre><code class="language-cpp">class XXX{

private:
 int m_i;

 XXX(const XX &amp;scr){
    scr.m_i //Kein Zugriffsfehler
 }

 void func(const XXX&amp; scr){
   scr.m_i //Zugriffsfehler
 }
};
</code></pre>
<p>Seh ich das richtig, das man im Kopiekonstruktor oder zuweisung operator auf private elemente der gleichen Klasse o. Oberklasse zugreifen kann, und in einer regulären funktion nicht?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/191091/auf-private-elemente-einer-verwandte-gleiche-klasse-zugreifen</link><generator>RSS for Node</generator><lastBuildDate>Fri, 25 Sep 2026 21:34:55 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/191091.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 30 Aug 2007 06:39:34 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to auf private Elemente einer Verwandte&#x2F;gleiche Klasse zugreifen?? on Thu, 30 Aug 2007 06:39:34 GMT]]></title><description><![CDATA[<p>bsp.:</p>
<pre><code class="language-cpp">class XXX{

private:
 int m_i;

 XXX(const XX &amp;scr){
    scr.m_i //Kein Zugriffsfehler
 }

 void func(const XXX&amp; scr){
   scr.m_i //Zugriffsfehler
 }
};
</code></pre>
<p>Seh ich das richtig, das man im Kopiekonstruktor oder zuweisung operator auf private elemente der gleichen Klasse o. Oberklasse zugreifen kann, und in einer regulären funktion nicht?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1355058</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1355058</guid><dc:creator><![CDATA[BorisDieKlinge]]></dc:creator><pubDate>Thu, 30 Aug 2007 06:39:34 GMT</pubDate></item><item><title><![CDATA[Reply to auf private Elemente einer Verwandte&#x2F;gleiche Klasse zugreifen?? on Thu, 30 Aug 2007 06:58:08 GMT]]></title><description><![CDATA[<p>nein... kein zurgriffsfehler.<br />
ich vermute du bekommst den fehler bei</p>
<pre><code class="language-cpp">src.m_i = 8;
</code></pre>
<p>denn das src-Obj ist <strong>const</strong> und darf somit nicht verändert werden</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1355072</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1355072</guid><dc:creator><![CDATA[muffmolch]]></dc:creator><pubDate>Thu, 30 Aug 2007 06:58:08 GMT</pubDate></item><item><title><![CDATA[Reply to auf private Elemente einer Verwandte&#x2F;gleiche Klasse zugreifen?? on Thu, 30 Aug 2007 07:01:41 GMT]]></title><description><![CDATA[<p>nochmal:</p>
<pre><code class="language-cpp">class XXX{ 

private: 
 int m_i; 

 XXX(const XX &amp;scr){ 
    scr.m_i = 8; //Kein Zugriffsfehler 
 } 

 void func1(const XXX&amp; scr){ 
   scr.m_i = 8;//Zugriffsfehler 
 } 
 void func(XXX&amp; scr){ 
   scr.m_i = 8;//kein Zugriffsfehler 
 } 
 void func3(XXX scr){ 
   scr.m_i = 8;//kein Zugriffsfehler 
 } 
 void func4(const XXX&amp; scr){ 
   this-&gt;m_i = scr.m_i;//kein Zugriffsfehler 
 } 
};
</code></pre>
<p>Aber: schcik dch mal den genauen code und v.a. die entsprechende Fehlermeldung</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1355074</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1355074</guid><dc:creator><![CDATA[muffmolch]]></dc:creator><pubDate>Thu, 30 Aug 2007 07:01:41 GMT</pubDate></item><item><title><![CDATA[Reply to auf private Elemente einer Verwandte&#x2F;gleiche Klasse zugreifen?? on Thu, 30 Aug 2007 07:00:23 GMT]]></title><description><![CDATA[<p>Was heißt denn &quot;Zugriffsfehler&quot; überhaupt?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1355075</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1355075</guid><dc:creator><![CDATA[MFK]]></dc:creator><pubDate>Thu, 30 Aug 2007 07:00:23 GMT</pubDate></item><item><title><![CDATA[Reply to auf private Elemente einer Verwandte&#x2F;gleiche Klasse zugreifen?? on Thu, 30 Aug 2007 07:02:36 GMT]]></title><description><![CDATA[<p>najabei mir kommt aber einer:</p>
<pre><code class="language-cpp">class Base {

protected:

 int m_iBase;

};

class Sub : public Base{

 void func(const Base &amp;X){

    int h= Base.m_iBase; //Zugriffsfehelr
 }
};
</code></pre>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/2803">@MFK</a>: Cannot access Protected member in Base.... etc.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1355076</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1355076</guid><dc:creator><![CDATA[BorisDieKlinge]]></dc:creator><pubDate>Thu, 30 Aug 2007 07:02:36 GMT</pubDate></item><item><title><![CDATA[Reply to auf private Elemente einer Verwandte&#x2F;gleiche Klasse zugreifen?? on Thu, 30 Aug 2007 09:01:37 GMT]]></title><description><![CDATA[<p>da &quot;m_i&quot; proteced in Base ist und somit private für alle mit &quot;public Base&quot; abgeleitete Klassen. Allerdings ist man imme rnur autom friend &quot;derselben&quot; klasse.</p>
<p>siehe:</p>
<pre><code class="language-cpp">class Base{ 
protected: 
   int m_iBase; 
   static int s_iBase; 
}; 

class Sub : public Base{ 
public: 
   void func0(const Base &amp;X){ cout&lt;&lt;X.m_iBase&lt;&lt;endl; } //-&gt;Fehler
   void func1(const Sub  &amp;X){ cout&lt;&lt;X.m_iBase&lt;&lt;endl; } //-&gt;funktioniert
   void func2(const Base &amp;X){ cout&lt;&lt;Base::s_iBase&lt;&lt;endl; } //-&gt;funktioniert
   void func3(const Sub  &amp;X){ cout&lt;&lt;Sub::s_iBase&lt;&lt;endl; } //-&gt;funktioniert
};
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1355077</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1355077</guid><dc:creator><![CDATA[muffmolch]]></dc:creator><pubDate>Thu, 30 Aug 2007 09:01:37 GMT</pubDate></item><item><title><![CDATA[Reply to auf private Elemente einer Verwandte&#x2F;gleiche Klasse zugreifen?? on Thu, 30 Aug 2007 07:07:45 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">class Base {

protected:

 int m_iBase;

};
class Sub : public Base{

};
class Sub2 : public Sub{

 void func(const Base &amp;X){

    int h= Base.m_iBase; //Zugriffsfehelr
 }
};
</code></pre>
<p>aha.. und wenn so aussieht???</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1355080</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1355080</guid><dc:creator><![CDATA[BorisDieKlinge]]></dc:creator><pubDate>Thu, 30 Aug 2007 07:07:45 GMT</pubDate></item><item><title><![CDATA[Reply to auf private Elemente einer Verwandte&#x2F;gleiche Klasse zugreifen?? on Thu, 30 Aug 2007 07:10:41 GMT]]></title><description><![CDATA[<p>dann hast du auf m_iBase in Sub2 keinen Zugriffsrechte. und musst getter und setter methoden verwenden</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1355081</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1355081</guid><dc:creator><![CDATA[muffmolch]]></dc:creator><pubDate>Thu, 30 Aug 2007 07:10:41 GMT</pubDate></item><item><title><![CDATA[Reply to auf private Elemente einer Verwandte&#x2F;gleiche Klasse zugreifen?? on Thu, 30 Aug 2007 07:22:04 GMT]]></title><description><![CDATA[<p>oh man.. daher spielt die musik.. sowas dachte ich mir <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /> danke;)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1355088</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1355088</guid><dc:creator><![CDATA[BorisDieKlinge]]></dc:creator><pubDate>Thu, 30 Aug 2007 07:22:04 GMT</pubDate></item><item><title><![CDATA[Reply to auf private Elemente einer Verwandte&#x2F;gleiche Klasse zugreifen?? on Thu, 30 Aug 2007 07:36:06 GMT]]></title><description><![CDATA[<p>ABER STOP:</p>
<pre><code class="language-cpp">class AAA{
protected:

	int m_iAAA;
public:
	AAA(void);
	~AAA(void);
};

class BBB : public AAA{

	void test(const AAA&amp; obj){
		int h= obj.m_iAAA; // (1)
	}

};
</code></pre>
<p>(1) : c:\test\hierachietest\AAA.h(15): error C2248: 'AAA::m_iAAA' : cannot access protected member declared in class 'AAA'</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1355100</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1355100</guid><dc:creator><![CDATA[BorisDieKlinge]]></dc:creator><pubDate>Thu, 30 Aug 2007 07:36:06 GMT</pubDate></item><item><title><![CDATA[Reply to auf private Elemente einer Verwandte&#x2F;gleiche Klasse zugreifen?? on Thu, 30 Aug 2007 07:58:37 GMT]]></title><description><![CDATA[<p>Man kann nur auf protected-Member der Basisklasse zugreifen, wenn diese sich im eigenen Objekt befinden. Nicht, wenn das irgendeine fremde Instanz ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1355117</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1355117</guid><dc:creator><![CDATA[Bashar]]></dc:creator><pubDate>Thu, 30 Aug 2007 07:58:37 GMT</pubDate></item><item><title><![CDATA[Reply to auf private Elemente einer Verwandte&#x2F;gleiche Klasse zugreifen?? on Thu, 30 Aug 2007 09:03:49 GMT]]></title><description><![CDATA[<p>genau. habe oben den beitrag angepaßt und das bsp erweitert.<br />
&quot;friend&quot;s sind nur Objekte &quot;derselben&quot; klasse. du kannst also von Sub nur autom auf private (inclusiver der vererbten) der basisklasse zugreifen.<br />
aber nicht auf protected member von Basisklassen objekten</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1355162</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1355162</guid><dc:creator><![CDATA[muffmolch]]></dc:creator><pubDate>Thu, 30 Aug 2007 09:03:49 GMT</pubDate></item><item><title><![CDATA[Reply to auf private Elemente einer Verwandte&#x2F;gleiche Klasse zugreifen?? on Thu, 30 Aug 2007 10:07:30 GMT]]></title><description><![CDATA[<p>pumuckl schrieb:</p>
<blockquote>
<p>BorisDieKlinge schrieb:</p>
<blockquote>
<pre><code class="language-cpp">class Sub2 : public Sub{

 void func(const Base &amp;X){
 
    int h= Base.m_iBase; //Zugriffsfehelr
    //MOOOMENT!!!
 }
};
</code></pre>
</blockquote>
<p>du greifst hier auf Base.m_iBase zu - was ein etwas unsinniges Konstrukt ist. versuchs mal mit</p>
<pre><code class="language-cpp">int h = X.m_iBase;
</code></pre>
</blockquote>
<p>muffmolch schrieb:</p>
<blockquote>
<p>du kannst also von Sub nur autom auf private (inclusiver der vererbten) der basisklasse zugreifen.<br />
aber nicht auf protected member von Basisklassen objekten</p>
</blockquote>
<p>Genau andersrum. Private Member sind nur fuer die Klasse selbst sichtbar, nicht aber fuer die erbenden Klassen. Protected Member sind wiederum fuer die Klasse selbst und alle (public oder protected) erbenden Klassen sichtbar. Mal abgesehen von Friends und nachtraeglichen Veraenderungen der Zugriffsspezifizierer in den erbenden Klassen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1355218</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1355218</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Thu, 30 Aug 2007 10:07:30 GMT</pubDate></item><item><title><![CDATA[Reply to auf private Elemente einer Verwandte&#x2F;gleiche Klasse zugreifen?? on Thu, 30 Aug 2007 11:14:34 GMT]]></title><description><![CDATA[<p>MFK schrieb:</p>
<blockquote>
<p>Was heißt denn &quot;Zugriffsfehler&quot; überhaupt?</p>
</blockquote>
<p>Access Violation</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1355270</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1355270</guid><dc:creator><![CDATA[Chris++ 0]]></dc:creator><pubDate>Thu, 30 Aug 2007 11:14:34 GMT</pubDate></item></channel></rss>