<?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[Inner Klasse: Zugriff auf private]]></title><description><![CDATA[<p>Abend,</p>
<p>sagen wir ich habe eine inner Klasse:</p>
<pre><code class="language-cpp">class Outer{
public:
	class Inner {
	private:
		Outer*	mOuter;

	public:
		Inner (Outer* outer);

	};

private:

     int*	mFoo;
</code></pre>
<p>Und im .cpp file:</p>
<pre><code class="language-cpp">Outer::Inner::Inner(Outer* outer) :
	mOuter(outer) {

	mOuter-&gt;mFoo = 0; // Kompiliert! Wieso kann ich auf mFoo zugreifen? Ist doch private
}
</code></pre>
<p>Wieso kann ich im Ctor von Inner auf mFoo von Outer zugreifen, obwohl es private ist? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/topic/290396/inner-klasse-zugriff-auf-private</link><generator>RSS for Node</generator><lastBuildDate>Tue, 18 Aug 2026 14:20:50 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/290396.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 25 Jul 2011 20:12:32 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Inner Klasse: Zugriff auf private on Mon, 25 Jul 2011 20:12:32 GMT]]></title><description><![CDATA[<p>Abend,</p>
<p>sagen wir ich habe eine inner Klasse:</p>
<pre><code class="language-cpp">class Outer{
public:
	class Inner {
	private:
		Outer*	mOuter;

	public:
		Inner (Outer* outer);

	};

private:

     int*	mFoo;
</code></pre>
<p>Und im .cpp file:</p>
<pre><code class="language-cpp">Outer::Inner::Inner(Outer* outer) :
	mOuter(outer) {

	mOuter-&gt;mFoo = 0; // Kompiliert! Wieso kann ich auf mFoo zugreifen? Ist doch private
}
</code></pre>
<p>Wieso kann ich im Ctor von Inner auf mFoo von Outer zugreifen, obwohl es private ist? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2097794</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2097794</guid><dc:creator><![CDATA[Nachtschatten22]]></dc:creator><pubDate>Mon, 25 Jul 2011 20:12:32 GMT</pubDate></item><item><title><![CDATA[Reply to Inner Klasse: Zugriff auf private on Mon, 25 Jul 2011 20:13:39 GMT]]></title><description><![CDATA[<p>Alles innerhalb einer Klasse hat Zugriff auf private Member derselben. Dazu gehören auch Klassen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2097796</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2097796</guid><dc:creator><![CDATA[314159265358979]]></dc:creator><pubDate>Mon, 25 Jul 2011 20:13:39 GMT</pubDate></item><item><title><![CDATA[Reply to Inner Klasse: Zugriff auf private on Tue, 26 Jul 2011 02:34:04 GMT]]></title><description><![CDATA[<p>Nachtschatten22 schrieb:</p>
<blockquote>
<p>Wieso kann ich im Ctor von Inner auf mFoo von Outer zugreifen, obwohl es private ist? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
</blockquote>
<p>Bug, verwende einen anderen Compiler.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2097846</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2097846</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Tue, 26 Jul 2011 02:34:04 GMT</pubDate></item><item><title><![CDATA[Reply to Inner Klasse: Zugriff auf private on Tue, 26 Jul 2011 03:12:21 GMT]]></title><description><![CDATA[<p>Das Thema war &quot;strittig&quot;:</p>
<p>Siehe<br />
<a href="http://www.open-std.org/JTC1/SC22/WG21/docs/cwg_defects.html#45" rel="nofollow">http://www.open-std.org/JTC1/SC22/WG21/docs/cwg_defects.html#45</a><br />
Absatz &quot;Proposed Resolution&quot;</p>
<p>bzw. den kommenden Standard:</p>
<p>n3090 schrieb:</p>
<blockquote>
<p><strong>11.8</strong> Nested classes</p>
<p><strong>1</strong> A nested class is a member and as such has the same access rights as any other member. The members of an enclosing class have no special access to members of a nested class; the usual access rules (Clause 11) shall be obeyed.</p>
</blockquote>
<p>MSVC, GCC und Comeau setzen das anscheinend auch schon länger so um.</p>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/23275">@314159265358979</a>: In C++ 98 definitiv nicht (ist sogar ein explizites Beispiel drinnen dass es verboten ist) <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="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2097849</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2097849</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Tue, 26 Jul 2011 03:12:21 GMT</pubDate></item><item><title><![CDATA[Reply to Inner Klasse: Zugriff auf private on Tue, 26 Jul 2011 07:42:13 GMT]]></title><description><![CDATA[<p>hustbaer schrieb:</p>
<blockquote>
<p>n3090 schrieb:</p>
<blockquote>
<p><strong>11.8</strong> Nested classes</p>
<p><strong>1</strong> A nested class is a member and as such has the same access rights as any other member. The members of an enclosing class have no special access to members of a nested class; the usual access rules (Clause 11) shall be obeyed.</p>
</blockquote>
<p>MSVC, GCC und Comeau setzen das anscheinend auch schon länger so um.</p>
</blockquote>
<p>Versteh ich nicht. Wenn sie es umsetzen wuerden, wuerde der Zugriff doch gerade eben NICHT gehen? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
<p>Ich benutzte VS 2010.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2097864</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2097864</guid><dc:creator><![CDATA[Nachtschatten22]]></dc:creator><pubDate>Tue, 26 Jul 2011 07:42:13 GMT</pubDate></item><item><title><![CDATA[Reply to Inner Klasse: Zugriff auf private on Tue, 26 Jul 2011 08:11:02 GMT]]></title><description><![CDATA[<p>Schau dir den ersten Satz an. Der zweite Satz ist für den umgekehrten Fall umgebende Klasse -&gt; innere Klasse.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2097866</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2097866</guid><dc:creator><![CDATA[Michael E.]]></dc:creator><pubDate>Tue, 26 Jul 2011 08:11:02 GMT</pubDate></item><item><title><![CDATA[Reply to Inner Klasse: Zugriff auf private on Tue, 26 Jul 2011 08:14:08 GMT]]></title><description><![CDATA[<p>Michael E. schrieb:</p>
<blockquote>
<p>Schau dir den ersten Satz an. Der zweite Satz ist für den umgekehrten Fall umgebende Klasse -&gt; innere Klasse.</p>
</blockquote>
<p>Naja, aber Inner greift ja nicht direkt auf mFoo zu (wuerde ja gehen wenn mFoo statisch waere), sondern uber den Zeiger mOuter. mOuter-&gt;mFoo heisst ja dann: Ich bin Klasse Inner und greife ueber Zeiger mOuter auf den private Member mFoo zu. Das sollte doch nicht gehen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2097869</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2097869</guid><dc:creator><![CDATA[Nachtschatten22]]></dc:creator><pubDate>Tue, 26 Jul 2011 08:14:08 GMT</pubDate></item><item><title><![CDATA[Reply to Inner Klasse: Zugriff auf private on Tue, 26 Jul 2011 09:24:48 GMT]]></title><description><![CDATA[<p>Nachtschatten22 schrieb:</p>
<blockquote>
<p>Michael E. schrieb:</p>
<blockquote>
<p>Schau dir den ersten Satz an. Der zweite Satz ist für den umgekehrten Fall umgebende Klasse -&gt; innere Klasse.</p>
</blockquote>
<p>Naja, aber Inner greift ja nicht direkt auf mFoo zu (wuerde ja gehen wenn mFoo statisch waere), sondern uber den Zeiger mOuter. mOuter-&gt;mFoo heisst ja dann: Ich bin Klasse Inner und greife ueber Zeiger mOuter auf den private Member mFoo zu. Das sollte doch nicht gehen?</p>
</blockquote>
<p>Doch. Die Klasse Inner darf auf private Member der Klasse Outer zugreifen. Das heißt, <strong>jedes</strong> Inner-Objekt hat Zugriff auf die Innereien von <strong>jedem</strong> Outer-Objekt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2097895</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2097895</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Tue, 26 Jul 2011 09:24:48 GMT</pubDate></item><item><title><![CDATA[Reply to Inner Klasse: Zugriff auf private on Tue, 26 Jul 2011 14:37:34 GMT]]></title><description><![CDATA[<p>Edit: Unfug</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2097999</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2097999</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Tue, 26 Jul 2011 14:37:34 GMT</pubDate></item></channel></rss>