<?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[Klasse B erbt von Klasse A. Klasse B soll auf x zugreifen aber nicht Main.]]></title><description><![CDATA[<p>Hi,</p>
<p>Klasse B erbt von Klasse A. Klasse B soll auf die Variable x von Klasse A zugreifen können.<br />
Auf die Variable x darf nicht direkt von Main aus zugegriffen werden. Wie mache ich das? Wenn ich die Variable private/protected setze, dann kann die Klasse B auch nicht mehr auf die Variable x zugreifen...</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/327048/klasse-b-erbt-von-klasse-a-klasse-b-soll-auf-x-zugreifen-aber-nicht-main</link><generator>RSS for Node</generator><lastBuildDate>Thu, 09 Jul 2026 20:26:37 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/327048.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 21 Jul 2014 00:36:22 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Klasse B erbt von Klasse A. Klasse B soll auf x zugreifen aber nicht Main. on Mon, 21 Jul 2014 00:36:22 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>Klasse B erbt von Klasse A. Klasse B soll auf die Variable x von Klasse A zugreifen können.<br />
Auf die Variable x darf nicht direkt von Main aus zugegriffen werden. Wie mache ich das? Wenn ich die Variable private/protected setze, dann kann die Klasse B auch nicht mehr auf die Variable x zugreifen...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2409644</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2409644</guid><dc:creator><![CDATA[blume]]></dc:creator><pubDate>Mon, 21 Jul 2014 00:36:22 GMT</pubDate></item><item><title><![CDATA[Reply to Klasse B erbt von Klasse A. Klasse B soll auf x zugreifen aber nicht Main. on Mon, 21 Jul 2014 00:49:16 GMT]]></title><description><![CDATA[<p>blume schrieb:</p>
<blockquote>
<p>Wenn ich die Variable private/protected setze, dann kann die Klasse B auch nicht mehr auf die Variable x zugreifen...</p>
</blockquote>
<p>Hast du das ausprobiert?<br />
Kannst du den Code mal posten?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2409645</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2409645</guid><dc:creator><![CDATA[Guy Fawkes]]></dc:creator><pubDate>Mon, 21 Jul 2014 00:49:16 GMT</pubDate></item><item><title><![CDATA[Reply to Klasse B erbt von Klasse A. Klasse B soll auf x zugreifen aber nicht Main. on Mon, 21 Jul 2014 11:26:46 GMT]]></title><description><![CDATA[<pre><code>#include &lt;iostream&gt;
using namespace std;

class Basis {
	int var1;
	int var2;
	void funk1(void);
public:
	void funk2(void);
};

class Ableitung : public Basis {
protected:
	int varx;
public:
	void funkx(void);
};

class Test : public Ableitung {

};

int main() {
	Test t;
}
</code></pre>
<p>Die Variable x ist hier varx. Ableitung ist Klasse A und Klasse B ist Test.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2409684</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2409684</guid><dc:creator><![CDATA[blume]]></dc:creator><pubDate>Mon, 21 Jul 2014 11:26:46 GMT</pubDate></item><item><title><![CDATA[Reply to Klasse B erbt von Klasse A. Klasse B soll auf x zugreifen aber nicht Main. on Mon, 21 Jul 2014 11:28:41 GMT]]></title><description><![CDATA[<p>Test greift ja gar nicht auf varx zu?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2409685</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2409685</guid><dc:creator><![CDATA[oenone]]></dc:creator><pubDate>Mon, 21 Jul 2014 11:28:41 GMT</pubDate></item><item><title><![CDATA[Reply to Klasse B erbt von Klasse A. Klasse B soll auf x zugreifen aber nicht Main. on Mon, 21 Jul 2014 11:59:32 GMT]]></title><description><![CDATA[<p>oenone schrieb:</p>
<blockquote>
<p>Test greift ja gar nicht auf varx zu?</p>
</blockquote>
<p>Ja, darum geht es ja auch.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2409691</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2409691</guid><dc:creator><![CDATA[blume]]></dc:creator><pubDate>Mon, 21 Jul 2014 11:59:32 GMT</pubDate></item><item><title><![CDATA[Reply to Klasse B erbt von Klasse A. Klasse B soll auf x zugreifen aber nicht Main. on Mon, 21 Jul 2014 12:02:24 GMT]]></title><description><![CDATA[<p>Dann füg es einfach hinzu:</p>
<pre><code>class Test : public Ableitung { 
public:
    void print_varx() {
        std::cout &lt;&lt; varx &lt;&lt; std::endl;
    } 
};
</code></pre>
<p>feddisch.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2409692</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2409692</guid><dc:creator><![CDATA[oenone]]></dc:creator><pubDate>Mon, 21 Jul 2014 12:02:24 GMT</pubDate></item><item><title><![CDATA[Reply to Klasse B erbt von Klasse A. Klasse B soll auf x zugreifen aber nicht Main. on Mon, 21 Jul 2014 12:24:17 GMT]]></title><description><![CDATA[<p>Nein, so ist das nicht gemeint. Also:<br />
Ergänzen Sie den unten gegebenen Quelltext (Klassendefinition von Basis und Ableitung) so, dass folgende Zugriffe auf Elementvariablen und Funktionen in Funktion main() und Klasse Ableitung gelten: Zugriff auf var1 und var2 aus main() nicht möglich. Zugriff auf funk1() aus main() nicht möglich. Zugriff auf funk2() aus main möglich. Zugriff auf var1 und var2 aus Ableitung nicht möglich. Zugriff auf funk1() aus Ableitung möglich. Zugriff auf varx aus main nicht möglich, Zugriff auf varx aus Klasse, die von Ableitung erbt möglich. Zugriff auf funkx() aus main() möglich.</p>
<pre><code>#include &lt;iostream&gt;
using namespace std;

class Basis {
	int var1;
	int var2;
	void funk1(void);
	void funk2(void);
};

class Ableitung : public Basis {
	int varx;
	void funkx(void);
};

int main() {
	//....
}
</code></pre>
<p>So habe ich das gemacht, stimmt aber nicht ganz:</p>
<pre><code>#include &lt;iostream&gt;
using namespace std;

class Basis {
	int var1;
	int var2;
	void funk1(void);
public:
	void funk2(void);
};

class Ableitung : public Basis {
	int varx;
public:
	void funkx(void);
};

int main() {
}
</code></pre>
<p>Zugriff auf funk1() aus main() nicht möglich. Zugriff auf funk1() aus Ableitung möglich. Und das mit varx...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2409695</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2409695</guid><dc:creator><![CDATA[blume]]></dc:creator><pubDate>Mon, 21 Jul 2014 12:24:17 GMT</pubDate></item><item><title><![CDATA[Reply to Klasse B erbt von Klasse A. Klasse B soll auf x zugreifen aber nicht Main. on Mon, 21 Jul 2014 12:26:27 GMT]]></title><description><![CDATA[<p>Ja, das was die Kindklassen zugreifen sollen, machst du jetzt noch protected.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2409696</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2409696</guid><dc:creator><![CDATA[oenone]]></dc:creator><pubDate>Mon, 21 Jul 2014 12:26:27 GMT</pubDate></item><item><title><![CDATA[Reply to Klasse B erbt von Klasse A. Klasse B soll auf x zugreifen aber nicht Main. on Mon, 21 Jul 2014 12:58:29 GMT]]></title><description><![CDATA[<p>Wenn ich das mache:</p>
<pre><code>protected:
	void funk1(void);
</code></pre>
<p>Dann kann Ableitung auch nicht mehr drauf zugreifen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2409705</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2409705</guid><dc:creator><![CDATA[blume]]></dc:creator><pubDate>Mon, 21 Jul 2014 12:58:29 GMT</pubDate></item><item><title><![CDATA[Reply to Klasse B erbt von Klasse A. Klasse B soll auf x zugreifen aber nicht Main. on Mon, 21 Jul 2014 13:08:34 GMT]]></title><description><![CDATA[<p>blume schrieb:</p>
<blockquote>
<p>Zugriff auf var1 und var2 aus main() nicht möglich. Zugriff auf funk1() aus main() nicht möglich. Zugriff auf funk2() aus main möglich. Zugriff auf var1 und var2 aus Ableitung nicht möglich. Zugriff auf funk1() aus Ableitung möglich. Zugriff auf varx aus main nicht möglich, Zugriff auf varx aus Klasse, die von Ableitung erbt möglich. Zugriff auf funkx() aus main() möglich.</p>
</blockquote>
<pre><code>#include &lt;iostream&gt;
using namespace std;

class Basis {
private:
    int var1;
    int var2;
protected:
    void funk1(void);
public:
    void funk2(void);
};

class Ableitung : public Basis {
protected:
    int varx;
public:
    void funkx(void);
};

int main() {
    //....
}
</code></pre>
<p>Was hälst du denn davon?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2409709</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2409709</guid><dc:creator><![CDATA[out]]></dc:creator><pubDate>Mon, 21 Jul 2014 13:08:34 GMT</pubDate></item><item><title><![CDATA[Reply to Klasse B erbt von Klasse A. Klasse B soll auf x zugreifen aber nicht Main. on Mon, 21 Jul 2014 13:17:34 GMT]]></title><description><![CDATA[<p>blume schrieb:</p>
<blockquote>
<p>Wenn ich das mache:</p>
<pre><code>protected:
	void funk1(void);
</code></pre>
<p>Dann kann Ableitung auch nicht mehr drauf zugreifen.</p>
</blockquote>
<p>Doch, genau dafür ist das da.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2409712</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2409712</guid><dc:creator><![CDATA[oenone]]></dc:creator><pubDate>Mon, 21 Jul 2014 13:17:34 GMT</pubDate></item><item><title><![CDATA[Reply to Klasse B erbt von Klasse A. Klasse B soll auf x zugreifen aber nicht Main. on Mon, 21 Jul 2014 13:57:53 GMT]]></title><description><![CDATA[<p>out schrieb:</p>
<blockquote>
<p>Was hälst du denn davon?</p>
</blockquote>
<pre><code>#include &lt;iostream&gt;
using namespace std;

class Basis {
private:
	int var1;
	int var2;
protected:
	void funk1(void);
public:
	void funk2(void);
};

class Ableitung : public Basis {
protected:
	int varx;
public:
	void funkx(void);
};

class Test : public Ableitung {

};

int main() {
	Ableitung a;
	a.funk1(); // geht nicht 

	Test t;
	t.varx = 0; // geht nicht
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2409727</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2409727</guid><dc:creator><![CDATA[blume]]></dc:creator><pubDate>Mon, 21 Jul 2014 13:57:53 GMT</pubDate></item><item><title><![CDATA[Reply to Klasse B erbt von Klasse A. Klasse B soll auf x zugreifen aber nicht Main. on Mon, 21 Jul 2014 14:03:24 GMT]]></title><description><![CDATA[<p>blume schrieb:</p>
<blockquote>
<pre><code>int main() {
	Ableitung a;
	a.funk1(); // geht nicht 

	Test t;
	t.varx = 0; // geht nicht
}
</code></pre>
</blockquote>
<p>Ähm.. Das sind beides Zugriffe von main() aus. Das soll ja auch laut Anforderung nicht gehen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2409730</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2409730</guid><dc:creator><![CDATA[oenone]]></dc:creator><pubDate>Mon, 21 Jul 2014 14:03:24 GMT</pubDate></item><item><title><![CDATA[Reply to Klasse B erbt von Klasse A. Klasse B soll auf x zugreifen aber nicht Main. on Mon, 21 Jul 2014 14:07:18 GMT]]></title><description><![CDATA[<p>blume schrieb:</p>
<blockquote>
<p>out schrieb:</p>
<blockquote>
<p>Was hälst du denn davon?</p>
</blockquote>
<pre><code>#include &lt;iostream&gt;
using namespace std;

class Basis {
private:
	int var1;
	int var2;
protected:
	void funk1(void);
public:
	void funk2(void);
};

class Ableitung : public Basis {
protected:
	int varx;
public:
	void funkx(void);
};

class Test : public Ableitung {

};

int main() {
	Ableitung a;
	a.funk1(); // geht nicht // SO SOLL ES AUCH SEIN. ==&gt; Zugriff auf funk1() aus main() nicht möglich.

	Test t;
	t.varx = 0; // geht nicht // SO SOLL ES AUCH SEIN. ==&gt; Zugriff auf varx aus main nicht möglich.
}
</code></pre>
</blockquote>
<p>Ich glaube du verstehst hier etwas nicht. Wenn es heißt <code>Zugriff auf varx aus Klasse, die von Ableitung erbt möglich</code> , dann bezieht sich das immer auf Dinge innerhalb der Klasse. <code>Test t</code> in deinem Beispiel ist nicht innerhalb der Klasse Ableitung. Der Satz bezieht sich auf das:</p>
<pre><code>class Test : public Ableitung {
void wasweissich()
{
	Test t;
	t.varx = 0;

    // oder
    varx = 0;
}
};
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2409731</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2409731</guid><dc:creator><![CDATA[out]]></dc:creator><pubDate>Mon, 21 Jul 2014 14:07:18 GMT</pubDate></item><item><title><![CDATA[Reply to Klasse B erbt von Klasse A. Klasse B soll auf x zugreifen aber nicht Main. on Mon, 21 Jul 2014 14:08:32 GMT]]></title><description><![CDATA[<p>Wie greife ich dann von Ableitung auf funk1() zu?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2409732</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2409732</guid><dc:creator><![CDATA[blume]]></dc:creator><pubDate>Mon, 21 Jul 2014 14:08:32 GMT</pubDate></item><item><title><![CDATA[Reply to Klasse B erbt von Klasse A. Klasse B soll auf x zugreifen aber nicht Main. on Mon, 21 Jul 2014 14:10:47 GMT]]></title><description><![CDATA[<p>Okay, jetzt habe ich es verstanden. Vielen Dank!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2409733</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2409733</guid><dc:creator><![CDATA[blume]]></dc:creator><pubDate>Mon, 21 Jul 2014 14:10:47 GMT</pubDate></item><item><title><![CDATA[Reply to Klasse B erbt von Klasse A. Klasse B soll auf x zugreifen aber nicht Main. on Mon, 21 Jul 2014 14:13:00 GMT]]></title><description><![CDATA[<p>blume schrieb:</p>
<blockquote>
<p>Wie greife ich dann von Ableitung auf funk1() zu?</p>
</blockquote>
<p>Wie gesagt, es bezieht sich auf &quot;innerhalb der Klasse&quot;. Wenn du in der main bist, bist du nicht innerhalb der Klasse.</p>
<pre><code>class Basis {
private:
    int var1;
    int var2;
protected:
    void funk1(void);
public:
    void funk2(void);
};

class Ableitung : public Basis {
protected:
    int varx;
public:
    void funkx(void)
    {
        funk1(); // So z.B.
    }
};

class Test : public Ableitung {

};
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2409735</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2409735</guid><dc:creator><![CDATA[out]]></dc:creator><pubDate>Mon, 21 Jul 2014 14:13:00 GMT</pubDate></item><item><title><![CDATA[Reply to Klasse B erbt von Klasse A. Klasse B soll auf x zugreifen aber nicht Main. on Mon, 21 Jul 2014 14:37:51 GMT]]></title><description><![CDATA[<p>Bitte nicht</p>
<pre><code class="language-cpp">void funk1(void);
</code></pre>
<p>schreiben, das tut einem ja in den Augen weh. Lass das void weg.</p>
<pre><code class="language-cpp">void funk1();
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2409740</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2409740</guid><dc:creator><![CDATA[avoid void]]></dc:creator><pubDate>Mon, 21 Jul 2014 14:37:51 GMT</pubDate></item><item><title><![CDATA[Reply to Klasse B erbt von Klasse A. Klasse B soll auf x zugreifen aber nicht Main. on Mon, 21 Jul 2014 14:43:48 GMT]]></title><description><![CDATA[<p>avoid void schrieb:</p>
<blockquote>
<p>Bitte nicht</p>
<pre><code class="language-cpp">void funk1(void);
</code></pre>
<p>schreiben, das tut einem ja in den Augen weh. Lass das void weg.</p>
<pre><code class="language-cpp">void funk1();
</code></pre>
</blockquote>
<p>Das macht nicht der Schüler, sondern der Lehrer, denk ich mal.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2409743</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2409743</guid><dc:creator><![CDATA[out]]></dc:creator><pubDate>Mon, 21 Jul 2014 14:43:48 GMT</pubDate></item></channel></rss>