<?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[Memberfunktionen in Template-Klassen]]></title><description><![CDATA[<p>Moin zusammen<br />
Ich habe ein Problem und stehe etwas auf dem Schlauch. Ich experimentiere derzeit mit template-Klassen. In dieser Version habe ich eine template-Klasse von einer anderen erben lassen. Das scheint auch soweit zu funktionieren, zumindest sagt mir mein Programm nicht, dass es grundlgenede Probleme gibt.<br />
Nur leider kann ich nicht auf meine Memberfunktion &quot;zeigedaten&quot; zugreifen und weiß nicht, warum. Gut möglich, dass ich einen generellen Denkfehler dabei gemacht habe, wie ich die beiden classen erstellen lasse...</p>
<p>Es wäre schön, wenn mir jemand hierbei helfen kann.<br />
Hier der Code:</p>
<pre><code>#include &lt;iostream&gt;
using namespace std;

template &lt;class T&gt;
class CLebewesen
{
protected:
	T m_Alter;
	T m_Groesse;
	string m_Sternzeichen;
public:
	CLebewesen (T m_Alter, T m_Groesse, string m_Sternzeichen) : m_Alter (alter), m_Groesse (groesse), m_Sternzeichen(sternzeichen) {};
	~CLebewesen ();
};

template &lt;class T&gt;
class CMensch : public CLebewesen
{
private:
	string m_Vorname;
	string m_Nachname;
	T m_Magie;
	T m_Sportlichkeit;
	T m_Wissen;
public:
	CMensch (T m_Alter, T m_Groesse, string m_Sternzeichen, string m_Vorname, string m_Nachname, T m_Magie, T m_Sportlichkeit, T m_Wisen) : 
		CLebewesen(alter, groesse, sternzeichen),
		m_Vorname (vorname), m_Nachname (nachname), m_Magie (magie), m_Sportlichkeit (sportlichkeit), m_Wissen (wissen) {};
	~CMensch ();

	void zeigedaten ()
	{
		cout &lt;&lt; &quot;Spielerinfos&quot; &lt;&lt; endl;
		cout &lt;&lt; &quot;------------&quot; &lt;&lt; endl;
		cout &lt;&lt; &quot;Name: &quot; &lt;&lt; m_Vorname &lt;&lt; &quot; &quot; &lt;&lt; m_Nachname &lt;&lt; endl;
		cout &lt;&lt; &quot;Alter: &quot; &lt;&lt; m_Alter &lt;&lt; endl;
		cout &lt;&lt; &quot;Groesse: &quot; &lt;&lt; m_Groesse &lt;&lt; endl;
		cout &lt;&lt; &quot;-------&quot; &lt;&lt; endl;
		cout &lt;&lt; &quot;Magie: &quot; &lt;&lt; m_Magie &lt;&lt; endl;
		cout &lt;&lt; &quot;Sportlichkeit: &quot; &lt;&lt; m_Sportlichkeit &lt;&lt; endl;
		cout &lt;&lt; &quot;Wissen: &quot; &lt;&lt; m_Wissen &lt;&lt; endl;
	}
};

int main ()
{
	CMensch&lt;int&gt; *Spieler1 = NULL;
	Spieler1 = new CMensch&lt;int&gt;(18, 176, &quot;Loewe&quot;, &quot;Maara&quot;, &quot;Mau&quot;, 1, 1, 1);
	CMensch&lt;float&gt; *Spieler2 = NULL;
	Spieler2 = new CMensch&lt;float&gt;(17.3, 1.76, &quot;Fische&quot;, &quot;Maya&quot;, &quot;Maunz&quot;, 1.4, 1.8, 2.4);

	[b]Spieler1.zeigedaten ();[/b] // Hier liegt der Hund begraben

	return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/297598/memberfunktionen-in-template-klassen</link><generator>RSS for Node</generator><lastBuildDate>Fri, 14 Aug 2026 09:21:10 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/297598.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 02 Jan 2012 19:43:19 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Memberfunktionen in Template-Klassen on Mon, 02 Jan 2012 19:43:19 GMT]]></title><description><![CDATA[<p>Moin zusammen<br />
Ich habe ein Problem und stehe etwas auf dem Schlauch. Ich experimentiere derzeit mit template-Klassen. In dieser Version habe ich eine template-Klasse von einer anderen erben lassen. Das scheint auch soweit zu funktionieren, zumindest sagt mir mein Programm nicht, dass es grundlgenede Probleme gibt.<br />
Nur leider kann ich nicht auf meine Memberfunktion &quot;zeigedaten&quot; zugreifen und weiß nicht, warum. Gut möglich, dass ich einen generellen Denkfehler dabei gemacht habe, wie ich die beiden classen erstellen lasse...</p>
<p>Es wäre schön, wenn mir jemand hierbei helfen kann.<br />
Hier der Code:</p>
<pre><code>#include &lt;iostream&gt;
using namespace std;

template &lt;class T&gt;
class CLebewesen
{
protected:
	T m_Alter;
	T m_Groesse;
	string m_Sternzeichen;
public:
	CLebewesen (T m_Alter, T m_Groesse, string m_Sternzeichen) : m_Alter (alter), m_Groesse (groesse), m_Sternzeichen(sternzeichen) {};
	~CLebewesen ();
};

template &lt;class T&gt;
class CMensch : public CLebewesen
{
private:
	string m_Vorname;
	string m_Nachname;
	T m_Magie;
	T m_Sportlichkeit;
	T m_Wissen;
public:
	CMensch (T m_Alter, T m_Groesse, string m_Sternzeichen, string m_Vorname, string m_Nachname, T m_Magie, T m_Sportlichkeit, T m_Wisen) : 
		CLebewesen(alter, groesse, sternzeichen),
		m_Vorname (vorname), m_Nachname (nachname), m_Magie (magie), m_Sportlichkeit (sportlichkeit), m_Wissen (wissen) {};
	~CMensch ();

	void zeigedaten ()
	{
		cout &lt;&lt; &quot;Spielerinfos&quot; &lt;&lt; endl;
		cout &lt;&lt; &quot;------------&quot; &lt;&lt; endl;
		cout &lt;&lt; &quot;Name: &quot; &lt;&lt; m_Vorname &lt;&lt; &quot; &quot; &lt;&lt; m_Nachname &lt;&lt; endl;
		cout &lt;&lt; &quot;Alter: &quot; &lt;&lt; m_Alter &lt;&lt; endl;
		cout &lt;&lt; &quot;Groesse: &quot; &lt;&lt; m_Groesse &lt;&lt; endl;
		cout &lt;&lt; &quot;-------&quot; &lt;&lt; endl;
		cout &lt;&lt; &quot;Magie: &quot; &lt;&lt; m_Magie &lt;&lt; endl;
		cout &lt;&lt; &quot;Sportlichkeit: &quot; &lt;&lt; m_Sportlichkeit &lt;&lt; endl;
		cout &lt;&lt; &quot;Wissen: &quot; &lt;&lt; m_Wissen &lt;&lt; endl;
	}
};

int main ()
{
	CMensch&lt;int&gt; *Spieler1 = NULL;
	Spieler1 = new CMensch&lt;int&gt;(18, 176, &quot;Loewe&quot;, &quot;Maara&quot;, &quot;Mau&quot;, 1, 1, 1);
	CMensch&lt;float&gt; *Spieler2 = NULL;
	Spieler2 = new CMensch&lt;float&gt;(17.3, 1.76, &quot;Fische&quot;, &quot;Maya&quot;, &quot;Maunz&quot;, 1.4, 1.8, 2.4);

	[b]Spieler1.zeigedaten ();[/b] // Hier liegt der Hund begraben

	return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2163019</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2163019</guid><dc:creator><![CDATA[Nayamis]]></dc:creator><pubDate>Mon, 02 Jan 2012 19:43:19 GMT</pubDate></item><item><title><![CDATA[Reply to Memberfunktionen in Template-Klassen on Mon, 02 Jan 2012 19:56:26 GMT]]></title><description><![CDATA[<p>Müsste es nicht eigentlich CMensch: public CLebewesen&lt;T&gt; heißen?</p>
<p>EDIT: Bei Spieler1.zeigerdaten(): Warum sollte das funktionieren? Weißt du denn wie man auf methoden von Pointern zugreift?<br />
EDIT2: Warum verwendest du new? Und vor allen Dingen ohne delete?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2163022</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2163022</guid><dc:creator><![CDATA[pyhax]]></dc:creator><pubDate>Mon, 02 Jan 2012 19:56:26 GMT</pubDate></item><item><title><![CDATA[Reply to Memberfunktionen in Template-Klassen on Mon, 02 Jan 2012 20:09:26 GMT]]></title><description><![CDATA[<p>Gut möglich, dass das &quot;: public CLebewesen&lt;T&gt;&quot; heißen soll. Das ist so eine Stelle, bei der ich mir unsicher bin, da dieses Thema in unserem Skript nicht abgedeckt wird und ich mehr durch Trial&amp;Error ausprobiere, wie was funktioniert.</p>
<p>Zum ersten Edit:<br />
Naja, warum sollte es nicht so funktionieren? (Diese Frage ist ernstgemeint)<br />
Ich hab schon kleinere Programme geschrieben, bei denen ich genau auf diese Weise auf Funktionen zugreifen konnte o.O Oder hängt es damit zusammen, dass ich hier einen Pointer benutze? Ich glaube, das habe ich beim letzten Mal nicht gemacht *grübel* Aber wenn du genaueres weißt, wie ich es umschreiben muss, würde ich mich über eine dementsprechende Weisung freuen.</p>
<p>Zum zweiten Edit:<br />
Weil ich new und delete auch in der Klausur benutzen muss. Ich habe inzwischen häufiger den Hinweis bekommen, dass ich noch andere Sachen für den gleichen Nutzen benutzen kann, aber das hilft mir wenig weiter, wenn ich genau das hier können soll.<br />
Und delete habe ich ersteinmal weggelassen, da das Problem im Programm an genau dieser Stelle auftauchte. Ja, ich weiß, dass man ein delete dazuschreiben muss/sollte. Japp, ich weiß auch, wie man ein Delete schreibt. Mir trotzdem gerade egal, so lange es meinen Computer nicht gerade genau da zum Absturz treibt <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="😉"
    /> Ich schreib das delete, sobald ich weiß, dass der Rest funktioniert. Immer schön eines nach dem anderen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2163027</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2163027</guid><dc:creator><![CDATA[Nayamis]]></dc:creator><pubDate>Mon, 02 Jan 2012 20:09:26 GMT</pubDate></item><item><title><![CDATA[Reply to Memberfunktionen in Template-Klassen on Mon, 02 Jan 2012 20:08:29 GMT]]></title><description><![CDATA[<p>Ja es hat was mit Pointern zu tun .... Du musst &quot;-&gt;&quot; statt &quot;.&quot; verwenden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2163030</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2163030</guid><dc:creator><![CDATA[pyhax]]></dc:creator><pubDate>Mon, 02 Jan 2012 20:08:29 GMT</pubDate></item><item><title><![CDATA[Reply to Memberfunktionen in Template-Klassen on Mon, 02 Jan 2012 20:59:33 GMT]]></title><description><![CDATA[<p>Guter Tipp, dankeschön <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="🙂"
    /> Nun klappt es ^^</p>
<p>Edit:<br />
Hier noch der neue und überarbeitete Quellcode, für all jene, die ein ähnliches Problem haben <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="🙂"
    /> (Lediglich die Destruktoren wollen noch nicht und sind aus diesem Grund auskommentiert)</p>
<pre><code>#include &lt;iostream&gt;
#include &lt;string&gt;
using namespace std;

template &lt;class T&gt;
class CLebewesen
{
protected:
	T m_Alter;
	T m_Groesse;
	string m_Sternzeichen;
public:
	CLebewesen (T alter, T groesse, string sternzeichen) : m_Alter (alter), m_Groesse (groesse), m_Sternzeichen (sternzeichen) {};
	// ~CLebewesen ();
};

template &lt;class T&gt;
class CMensch : public CLebewesen&lt;T&gt;
{
private:
	string m_Vorname;
	string m_Nachname;
	T m_Magie;
	T m_Sportlichkeit;
	T m_Wissen;
public:
	CMensch (T alter, T groesse, string sternzeichen, string vorname, string nachname, T magie, T sportlichkeit, T wissen) :
	  CLebewesen (alter, groesse, sternzeichen),
		  m_Vorname (vorname), m_Nachname (nachname), m_Magie (magie), m_Sportlichkeit (sportlichkeit), m_Wissen(wissen) {};
	// ~CMensch ();

	void zeigedaten ()
	{
		cout &lt;&lt; &quot;Spielerinfos&quot; &lt;&lt; endl;
		cout &lt;&lt; &quot;------------&quot; &lt;&lt; endl;
		cout &lt;&lt; &quot;Name: &quot; &lt;&lt; m_Vorname &lt;&lt; &quot; &quot; &lt;&lt; m_Nachname &lt;&lt; endl;
		cout &lt;&lt; &quot;Alter: &quot; &lt;&lt; m_Alter &lt;&lt; endl;
		cout &lt;&lt; &quot;Groesse: &quot; &lt;&lt; m_Groesse &lt;&lt; endl;
		cout &lt;&lt; &quot;-------&quot; &lt;&lt; endl;
		cout &lt;&lt; &quot;Magie: &quot; &lt;&lt; m_Magie &lt;&lt; endl;
		cout &lt;&lt; &quot;Sportlichkeit: &quot; &lt;&lt; m_Sportlichkeit &lt;&lt; endl;
		cout &lt;&lt; &quot;Wissen: &quot; &lt;&lt; m_Wissen &lt;&lt; endl;
	}
};

int main ()
{
	CMensch&lt;int&gt; *Spieler1 = NULL;
	Spieler1 = new CMensch&lt;int&gt;(17,176,&quot;Loewe&quot;, &quot;Maara&quot;, &quot;Mau&quot;, 1, 2,3);
	CMensch&lt;float&gt; *Spieler2 = NULL;
	Spieler2 = new CMensch&lt;float&gt; (17.3, 1.76, &quot;Fische&quot;, &quot;Maya&quot;, &quot;Maunz&quot;, 1.4, 1.8, 2.4);

	Spieler1-&gt;zeigedaten ();
	cout&lt;&lt; endl;
	Spieler2-&gt;zeigedaten ();

	delete Spieler1;
	delete Spieler2;

	return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2163035</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2163035</guid><dc:creator><![CDATA[Nayamis]]></dc:creator><pubDate>Mon, 02 Jan 2012 20:59:33 GMT</pubDate></item></channel></rss>