<?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[Zugriffskombinationen]]></title><description><![CDATA[<p>Hallo ich bins wieder. Die Aufgabe 3 habe soweit noch geschaft, aber gegen Ende wurde es schwieriger:<br />
Aufgabe3:<br />
3.1 Definieren Sie eine Klasse Vater mit je einem public, private und<br />
protected Datenelement vom Typ int und einer Methode print(). Leiten<br />
Sie von dieser Klasse die Klassen Kind1 (public) und Kind2 (private) ab.<br />
Überladen Sie in diesen Klassen die Methode print(). Welche der geerbten Datenelemente können Sie hier ausgeben?</p>
<p>3.2 Definieren Sie im main-Programm Objekte der 3 Klassen (papa (Klasse Vater),<br />
hugo (Klasse Kind1) und susi (Klasse Kind2)). Auf welche Datenelemente<br />
können Sie jeweils von außen zugreifen?</p>
<p>3.3 Zuweisungskompatibilität: Deklarieren Sie zwei weitere Objekte der Klasse Vater (papa1, papa2) und initialisieren Sie diese Objekte mit den Objekten der<br />
Klassen Kind1 bzw. Kind2. Machen Sie außerdem den Versuch, einen Pointer<br />
(Typ Vater*) mit den Adressen der Objekte hugo und susi zu initialisieren. Warum geht die eine Zuweisung und die andere nicht?</p>
<p>Meine Lösung:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
using namespace std;

class Vater{

public:
	int x;
Vater(int x_=0,int y_=0,int z_=0) : x(x_),y(y_),z(z_){}
private:
	int y;

protected:
	int z;

	void print(){

	}

};

class Kind1 : public Vater {

public:
	void print() {
		cout &lt;&lt; &quot;(public) x: &quot; &lt;&lt; Kind1::x &lt;&lt; endl;
		//cout &lt;&lt; &quot;(private) y: &quot; &lt;&lt; Kind1::y; (Fehler: Zugriff nicht möglich)
		cout &lt;&lt; &quot;(protected) z: &quot; &lt;&lt; Kind1::z &lt;&lt; endl &lt;&lt; endl;
	}

};

class Kind2 : private Vater {
public:
	void print() {
		cout &lt;&lt; &quot;(public) x: &quot; &lt;&lt; Kind2::x &lt;&lt; endl;
		//cout &lt;&lt; &quot;(private) y: &quot; &lt;&lt; Kind1::y; (Fehler: Zugriff nicht möglich)
		cout &lt;&lt; &quot;(private) y: &quot; &lt;&lt; Kind2::z &lt;&lt; endl &lt;&lt; endl;

	}

};

int main()
{
	Vater papa;
	Vater papa1,papa2;
	Kind1 hugo;
	Kind2 susi;

	cout &lt;&lt; &quot;Zugriff ueber Kind1:&quot; &lt;&lt; endl;
	hugo.print();
	cout &lt;&lt; &quot;Zugriff ueber Kind2: &quot; &lt;&lt; endl;
	susi.print();

	cout &lt;&lt; &quot;Zugriff von aussen:&quot; &lt;&lt; endl;
	cout &lt;&lt; &quot;(public) x: &quot; &lt;&lt; papa.x &lt;&lt; endl;
	//cout &lt;&lt; &quot;(private) y: &quot; &lt;&lt; papa.y &lt;&lt; endl; (Fehler: Zugriff nicht möglich)
	//cout &lt;&lt; &quot;(private) y: &quot; &lt;&lt; papa.z &lt;&lt; endl; (Fehler: Zugriff nicht möglich)

	return 0;
}
//Zu Aufgabe 3.1: 
//Kind1 kann auf die geerbten Datenelemente x und z zugreifen und nicht auf y.
//Kind2 kann auf alle geerbten Datenelemente der Klasse Vater zugreifen.

//Zu Aufgabe 3.2:
//Von außen kann man nur auf das Datenelement x zugreifen.
</code></pre>
<p>Die Aufgabe 3.3 habe ich nicht so ganz hingekriegt, besser gesagt gar nicht:).<br />
Ich glaube 3.1 und 3.2 stimmen bis jetzt oder?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/128906/zugriffskombinationen</link><generator>RSS for Node</generator><lastBuildDate>Tue, 25 Aug 2026 22:00:08 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/128906.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 08 Dec 2005 12:56:30 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Zugriffskombinationen on Thu, 08 Dec 2005 12:56:30 GMT]]></title><description><![CDATA[<p>Hallo ich bins wieder. Die Aufgabe 3 habe soweit noch geschaft, aber gegen Ende wurde es schwieriger:<br />
Aufgabe3:<br />
3.1 Definieren Sie eine Klasse Vater mit je einem public, private und<br />
protected Datenelement vom Typ int und einer Methode print(). Leiten<br />
Sie von dieser Klasse die Klassen Kind1 (public) und Kind2 (private) ab.<br />
Überladen Sie in diesen Klassen die Methode print(). Welche der geerbten Datenelemente können Sie hier ausgeben?</p>
<p>3.2 Definieren Sie im main-Programm Objekte der 3 Klassen (papa (Klasse Vater),<br />
hugo (Klasse Kind1) und susi (Klasse Kind2)). Auf welche Datenelemente<br />
können Sie jeweils von außen zugreifen?</p>
<p>3.3 Zuweisungskompatibilität: Deklarieren Sie zwei weitere Objekte der Klasse Vater (papa1, papa2) und initialisieren Sie diese Objekte mit den Objekten der<br />
Klassen Kind1 bzw. Kind2. Machen Sie außerdem den Versuch, einen Pointer<br />
(Typ Vater*) mit den Adressen der Objekte hugo und susi zu initialisieren. Warum geht die eine Zuweisung und die andere nicht?</p>
<p>Meine Lösung:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
using namespace std;

class Vater{

public:
	int x;
Vater(int x_=0,int y_=0,int z_=0) : x(x_),y(y_),z(z_){}
private:
	int y;

protected:
	int z;

	void print(){

	}

};

class Kind1 : public Vater {

public:
	void print() {
		cout &lt;&lt; &quot;(public) x: &quot; &lt;&lt; Kind1::x &lt;&lt; endl;
		//cout &lt;&lt; &quot;(private) y: &quot; &lt;&lt; Kind1::y; (Fehler: Zugriff nicht möglich)
		cout &lt;&lt; &quot;(protected) z: &quot; &lt;&lt; Kind1::z &lt;&lt; endl &lt;&lt; endl;
	}

};

class Kind2 : private Vater {
public:
	void print() {
		cout &lt;&lt; &quot;(public) x: &quot; &lt;&lt; Kind2::x &lt;&lt; endl;
		//cout &lt;&lt; &quot;(private) y: &quot; &lt;&lt; Kind1::y; (Fehler: Zugriff nicht möglich)
		cout &lt;&lt; &quot;(private) y: &quot; &lt;&lt; Kind2::z &lt;&lt; endl &lt;&lt; endl;

	}

};

int main()
{
	Vater papa;
	Vater papa1,papa2;
	Kind1 hugo;
	Kind2 susi;

	cout &lt;&lt; &quot;Zugriff ueber Kind1:&quot; &lt;&lt; endl;
	hugo.print();
	cout &lt;&lt; &quot;Zugriff ueber Kind2: &quot; &lt;&lt; endl;
	susi.print();

	cout &lt;&lt; &quot;Zugriff von aussen:&quot; &lt;&lt; endl;
	cout &lt;&lt; &quot;(public) x: &quot; &lt;&lt; papa.x &lt;&lt; endl;
	//cout &lt;&lt; &quot;(private) y: &quot; &lt;&lt; papa.y &lt;&lt; endl; (Fehler: Zugriff nicht möglich)
	//cout &lt;&lt; &quot;(private) y: &quot; &lt;&lt; papa.z &lt;&lt; endl; (Fehler: Zugriff nicht möglich)

	return 0;
}
//Zu Aufgabe 3.1: 
//Kind1 kann auf die geerbten Datenelemente x und z zugreifen und nicht auf y.
//Kind2 kann auf alle geerbten Datenelemente der Klasse Vater zugreifen.

//Zu Aufgabe 3.2:
//Von außen kann man nur auf das Datenelement x zugreifen.
</code></pre>
<p>Die Aufgabe 3.3 habe ich nicht so ganz hingekriegt, besser gesagt gar nicht:).<br />
Ich glaube 3.1 und 3.2 stimmen bis jetzt oder?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/937275</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/937275</guid><dc:creator><![CDATA[Jippi]]></dc:creator><pubDate>Thu, 08 Dec 2005 12:56:30 GMT</pubDate></item><item><title><![CDATA[Reply to Zugriffskombinationen on Thu, 08 Dec 2005 14:00:51 GMT]]></title><description><![CDATA[<p>hausaufgabenservive 2k5?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/937365</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/937365</guid><dc:creator><![CDATA[cin]]></dc:creator><pubDate>Thu, 08 Dec 2005 14:00:51 GMT</pubDate></item><item><title><![CDATA[Reply to Zugriffskombinationen on Thu, 08 Dec 2005 14:21:57 GMT]]></title><description><![CDATA[<p>3.2: Was du bislang für 'papa' erledigt hast, mußt du auch noch für die beiden Kinder (susi und hugo) machen.</p>
<p>3.3: steht doch in der Aufgabenstellung (den Pointer erzeugst du mit &quot;Vater* pvat=<em>variable</em>;&quot;).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/937389</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/937389</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Thu, 08 Dec 2005 14:21:57 GMT</pubDate></item></channel></rss>