<?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[Private Membervariablen einer Klasse benutzen?]]></title><description><![CDATA[<p>Hallo Com!</p>
<p>Ich probiere seit gestern in die Objektorientierung von C++ einzusteigen und habe ein kleines Problem mit Klassen. Der Autor von meinem Buch hat geschrieben, dass ich, wenn ich Klassen benutze, alle Membervariablen privat deklarieren soll.</p>
<p>Nun hab ich, nachdem ich mit mit dem Source Code im Buch beschäftigt habe, selber ein wenig heran getastet und muss zugeben, ich bin ein wenig überfordert, weil der Compiler eine Fehlermeldung nach der anderen ausspuckt.</p>
<pre><code>#include &lt;iostream&gt;

using namespace std;

class Krieger {
	//Private Membervariablen
private:
	int staerke;
	int intelligenz;

public:
	//Auf die privaten Membervariablen zugreifen
	void ZeigeDaten();
};

void Krieger::ZeigeDaten()		//Funktion definieren
{
	cout &lt;&lt; &quot;Staerke:  &quot; &lt;&lt; staerke &lt;&lt; endl;
	cout &lt;&lt; &quot;Intelligenz:  &quot; &lt;&lt; intelligenz;

	Krieger A;
	Krieger B;

	A.intelligenz = 15;
	A.staerke = 20;

	B.intelligenz = 40;
	B.staerke = 60;
}

int main ()
{
		ZeigeDaten();		//Funktion aufrufen - klappt nicht

		cin.get();
		return 0;
}
</code></pre>
<p>Es wurde geschrieben, dass man, wenn man private Membervariablen deklariert, diese nur über eine Funktion in Anspruch nehmen kann.<br />
Der Compiler sagt mir aber immer und immer wieder, dass diese Funktion nicht definiert ist.</p>
<p>Würde mich über ein Ratschlag freuen!</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/319272/private-membervariablen-einer-klasse-benutzen</link><generator>RSS for Node</generator><lastBuildDate>Sun, 26 Jul 2026 07:34:32 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/319272.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 12 Aug 2013 19:23:48 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Private Membervariablen einer Klasse benutzen? on Mon, 12 Aug 2013 19:23:48 GMT]]></title><description><![CDATA[<p>Hallo Com!</p>
<p>Ich probiere seit gestern in die Objektorientierung von C++ einzusteigen und habe ein kleines Problem mit Klassen. Der Autor von meinem Buch hat geschrieben, dass ich, wenn ich Klassen benutze, alle Membervariablen privat deklarieren soll.</p>
<p>Nun hab ich, nachdem ich mit mit dem Source Code im Buch beschäftigt habe, selber ein wenig heran getastet und muss zugeben, ich bin ein wenig überfordert, weil der Compiler eine Fehlermeldung nach der anderen ausspuckt.</p>
<pre><code>#include &lt;iostream&gt;

using namespace std;

class Krieger {
	//Private Membervariablen
private:
	int staerke;
	int intelligenz;

public:
	//Auf die privaten Membervariablen zugreifen
	void ZeigeDaten();
};

void Krieger::ZeigeDaten()		//Funktion definieren
{
	cout &lt;&lt; &quot;Staerke:  &quot; &lt;&lt; staerke &lt;&lt; endl;
	cout &lt;&lt; &quot;Intelligenz:  &quot; &lt;&lt; intelligenz;

	Krieger A;
	Krieger B;

	A.intelligenz = 15;
	A.staerke = 20;

	B.intelligenz = 40;
	B.staerke = 60;
}

int main ()
{
		ZeigeDaten();		//Funktion aufrufen - klappt nicht

		cin.get();
		return 0;
}
</code></pre>
<p>Es wurde geschrieben, dass man, wenn man private Membervariablen deklariert, diese nur über eine Funktion in Anspruch nehmen kann.<br />
Der Compiler sagt mir aber immer und immer wieder, dass diese Funktion nicht definiert ist.</p>
<p>Würde mich über ein Ratschlag freuen!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2345334</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2345334</guid><dc:creator><![CDATA[Fabolous12]]></dc:creator><pubDate>Mon, 12 Aug 2013 19:23:48 GMT</pubDate></item><item><title><![CDATA[Reply to Private Membervariablen einer Klasse benutzen? on Mon, 12 Aug 2013 19:30:52 GMT]]></title><description><![CDATA[<p>Nein, so funktionieren Klassen nicht. Alles privat zu machen ist ja löblich, aber du hast anscheinend nicht verstanden, wozu Klassen überhaupt gut sind oder wie der Ansatz funktioniert. Du möchtest wohl eher:</p>
<pre><code>#include &lt;iostream&gt;

using namespace std;

class Krieger {
private:
    int staerke;
    int intelligenz;

public:
    void ZeigeDaten();
    Krieger(int s, int i) // eigentlich würde man hier eine Initialisierungsliste benutzen, kommt sicher bald
    {
      // Aber ich setze die variablen mal von Hand:
      staerke = s;
      intelligenz = i;
    }
};

void Krieger::ZeigeDaten()
{
    cout &lt;&lt; &quot;Staerke:  &quot; &lt;&lt; staerke &lt;&lt; endl;
    cout &lt;&lt; &quot;Intelligenz:  &quot; &lt;&lt; intelligenz;
}

int main ()
{
    Krieger A(20, 30);
    Krieger B(50, 60);

    A.ZeigeDaten();
    B.ZeigeDaten();
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2345338</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2345338</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Mon, 12 Aug 2013 19:30:52 GMT</pubDate></item><item><title><![CDATA[Reply to Private Membervariablen einer Klasse benutzen? on Mon, 12 Aug 2013 19:41:05 GMT]]></title><description><![CDATA[<blockquote>
<p>Der Compiler sagt mir aber immer und immer wieder, dass diese Funktion nicht definiert ist.</p>
</blockquote>
<p>Natürlich, denn das ist sie nicht. Merke dir: Der Compiler hat fast immer Recht, also höre auf ihn.</p>
<p>Auch hier. Die Funktion ist als eine Memberfunktion der Klasse deklariert, also nicht global. Du musst erst ein Objekt der Klasse erstellen und über dieses die Memberfunktion aufrufen; wie SeppJ in seinem Beispiel zeigt.<br />
Sonst ist die Funktion nicht &quot;sichtbar&quot;.<br />
Daher rate ich dir, OOP nochmal im Buch zu studieren - bzw. weiter vorne noch einmal ein zweites mal anzufangen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2345341</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2345341</guid><dc:creator><![CDATA[Sone]]></dc:creator><pubDate>Mon, 12 Aug 2013 19:41:05 GMT</pubDate></item><item><title><![CDATA[Reply to Private Membervariablen einer Klasse benutzen? on Mon, 12 Aug 2013 19:47:09 GMT]]></title><description><![CDATA[<p>Das hat mir enorm weiter geholfen, ich hatte Klassen in der Tat ziemlich falsch aufgegriffen. Zur Sicherheit werde ich das Kapitel aber noch mal von vorne durch gehen.</p>
<p>Vielen Dank ihr beiden <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /> !</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2345343</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2345343</guid><dc:creator><![CDATA[Fabolous12]]></dc:creator><pubDate>Mon, 12 Aug 2013 19:47:09 GMT</pubDate></item></channel></rss>