<?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[C++ Klassenerstellung - Bankenbeispiel - Fehler (type not)]]></title><description><![CDATA[<pre><code class="language-cpp">#ifndef MITARBEITER_H_
#define MITARBEITER_H_
#include &quot;Kunde.h&quot;
#include &lt;string&gt;
class Mitarbeiter
{

private:
	Kunde meinKunde = new Kunde();
	std::string name;

public:
	Mitarbeiter();
	virtual ~Mitarbeiter();

	std::string getName();

	void setName(std::string name);

	// Get- und Set-Methoden fï¿½r das Verweisattribut.
	Kunde getMeinKunde();

	void setMeinKunde(Kunde meinKunde);

};

#endif /*MITARBEITER_H_*/
</code></pre>
<pre><code class="language-cpp">#ifndef KUNDE_H_
#define KUNDE_H_
#include &quot;Mitarbeiter.h&quot;
#include &lt;string&gt;
class Kunde
{
	// privater Teil der Klasse (darauf hat nur die Klasse Zugriff)
private:
	// Verweisattribut.
	Mitarbeiter meinBetreuer = new Mitarbeiter();
	// Informationsattribnut.
		std::string name;

	// öffentlicher Teil der Klasse (alles darunter angegebene kann von 
	// jedem verwendet werden)
public:
	/* Ein Konstruktor zum Generieren eines Auto-Objektes */
	Kunde();
	/* Ein Destruktor zum Zerstören eines Auto-Objektes */
	virtual ~Kunde();

	// Get- und Set-Methoden für die Attribute.
	/**
	 * @return the name
	 */
	std::string getName();

	/**
	 * @param name the name to set
	 */
	void setName(std::string name);

	/**
	 * @return the meinKundenBerater
	 */
	Mitarbeiter getMeinBetreuer();

	/**
	 * @param meinKundenBerater the meinKundenBerater to set
	 */
	void setMeinBetreuer(Mitarbeiter meinBetreuer);
};

#endif /*KUNDE_H_*/
</code></pre>
<p>und die c++ - dateien jeweils:</p>
<pre><code class="language-cpp">#include &quot;kunde.h&quot;
#include &quot;mitarbeiter.h&quot;
#include &lt;iostream.h&gt;	// für cout
#include &lt;string&gt;
Kunde::Kunde()
{
	cout &lt;&lt; &quot;Kunde konstruktor&quot;;
	setMeinBetreuer(m);
			//Dem Mitarbeiter diesen Kunden zuweisen.

	}

Kunde::~Kunde()
{
	}

Kunde::getName()
{
	return name;
	}

Kunde::setName(std::string name)
{
	this-&gt;name = name;
	}
Kunde::getMeinBetreuer()
{
	return meinBetreuer;
	}
Kunde::setMeinBetreuer(Mitarbeiter meinBetreuer)
{
	this-&gt;meinBetreuer = meinBetreuer;
	}
</code></pre>
<pre><code class="language-cpp">#include &quot;Mitarbeiter.h&quot;
#include &quot;Kunde.h&quot;
#include &lt;string&gt;
Mitarbeiter::Mitarbeiter()
{
	name = &quot;Test&quot;;
	meinKunde = &quot;Kunde&quot;;
}

Mitarbeiter::~Mitarbeiter()
{
}
Mitarbeiter::setName(std::string name)
{
	this-&gt;name = name;
}
Mitarbeiter::getName()
{
	return name;
}
Mitarbeiter::getMeinKunde()
{
	return meinKunde;
}
Mitarbeiter::setMeinKunde(Kunde meinKunde)
{
	this-&gt;meinKunde = meinKunde;
}
</code></pre>
<p>Woran liegt es jetzt das beispielsweise mein compiler mir sagt:</p>
<p>`Kunde' does not name a type SchulprojektC++/src Mitarbeiter.h line 9</p>
<p>Ich hoffe ihr könnt mir helfen:/</p>
<p>gruß jensa</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/222417/c-klassenerstellung-bankenbeispiel-fehler-type-not</link><generator>RSS for Node</generator><lastBuildDate>Mon, 05 Oct 2026 04:09:47 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/222417.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 12 Sep 2008 09:05:42 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to C++ Klassenerstellung - Bankenbeispiel - Fehler (type not) on Fri, 12 Sep 2008 09:05:42 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">#ifndef MITARBEITER_H_
#define MITARBEITER_H_
#include &quot;Kunde.h&quot;
#include &lt;string&gt;
class Mitarbeiter
{

private:
	Kunde meinKunde = new Kunde();
	std::string name;

public:
	Mitarbeiter();
	virtual ~Mitarbeiter();

	std::string getName();

	void setName(std::string name);

	// Get- und Set-Methoden fï¿½r das Verweisattribut.
	Kunde getMeinKunde();

	void setMeinKunde(Kunde meinKunde);

};

#endif /*MITARBEITER_H_*/
</code></pre>
<pre><code class="language-cpp">#ifndef KUNDE_H_
#define KUNDE_H_
#include &quot;Mitarbeiter.h&quot;
#include &lt;string&gt;
class Kunde
{
	// privater Teil der Klasse (darauf hat nur die Klasse Zugriff)
private:
	// Verweisattribut.
	Mitarbeiter meinBetreuer = new Mitarbeiter();
	// Informationsattribnut.
		std::string name;

	// öffentlicher Teil der Klasse (alles darunter angegebene kann von 
	// jedem verwendet werden)
public:
	/* Ein Konstruktor zum Generieren eines Auto-Objektes */
	Kunde();
	/* Ein Destruktor zum Zerstören eines Auto-Objektes */
	virtual ~Kunde();

	// Get- und Set-Methoden für die Attribute.
	/**
	 * @return the name
	 */
	std::string getName();

	/**
	 * @param name the name to set
	 */
	void setName(std::string name);

	/**
	 * @return the meinKundenBerater
	 */
	Mitarbeiter getMeinBetreuer();

	/**
	 * @param meinKundenBerater the meinKundenBerater to set
	 */
	void setMeinBetreuer(Mitarbeiter meinBetreuer);
};

#endif /*KUNDE_H_*/
</code></pre>
<p>und die c++ - dateien jeweils:</p>
<pre><code class="language-cpp">#include &quot;kunde.h&quot;
#include &quot;mitarbeiter.h&quot;
#include &lt;iostream.h&gt;	// für cout
#include &lt;string&gt;
Kunde::Kunde()
{
	cout &lt;&lt; &quot;Kunde konstruktor&quot;;
	setMeinBetreuer(m);
			//Dem Mitarbeiter diesen Kunden zuweisen.

	}

Kunde::~Kunde()
{
	}

Kunde::getName()
{
	return name;
	}

Kunde::setName(std::string name)
{
	this-&gt;name = name;
	}
Kunde::getMeinBetreuer()
{
	return meinBetreuer;
	}
Kunde::setMeinBetreuer(Mitarbeiter meinBetreuer)
{
	this-&gt;meinBetreuer = meinBetreuer;
	}
</code></pre>
<pre><code class="language-cpp">#include &quot;Mitarbeiter.h&quot;
#include &quot;Kunde.h&quot;
#include &lt;string&gt;
Mitarbeiter::Mitarbeiter()
{
	name = &quot;Test&quot;;
	meinKunde = &quot;Kunde&quot;;
}

Mitarbeiter::~Mitarbeiter()
{
}
Mitarbeiter::setName(std::string name)
{
	this-&gt;name = name;
}
Mitarbeiter::getName()
{
	return name;
}
Mitarbeiter::getMeinKunde()
{
	return meinKunde;
}
Mitarbeiter::setMeinKunde(Kunde meinKunde)
{
	this-&gt;meinKunde = meinKunde;
}
</code></pre>
<p>Woran liegt es jetzt das beispielsweise mein compiler mir sagt:</p>
<p>`Kunde' does not name a type SchulprojektC++/src Mitarbeiter.h line 9</p>
<p>Ich hoffe ihr könnt mir helfen:/</p>
<p>gruß jensa</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1580725</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1580725</guid><dc:creator><![CDATA[jensa]]></dc:creator><pubDate>Fri, 12 Sep 2008 09:05:42 GMT</pubDate></item><item><title><![CDATA[Reply to C++ Klassenerstellung - Bankenbeispiel - Fehler (type not) on Fri, 12 Sep 2008 09:15:11 GMT]]></title><description><![CDATA[<p>du brauchst für deine Klassen Kunde und Mitarbeiter Forwarddeklarationen, sonst sind die sich nicht gegenseitig bekannt.<br />
Also einfach vor die Klassendeklaration von Mitarbeiter einfügen:</p>
<pre><code class="language-cpp">// --- includeguards, includes ...
class Kunde;
class Mitarbeiter { 
// ...
};
</code></pre>
<pre><code class="language-cpp">// --- includeguards, includes ...
class Mitarbeiter;
class Kunde { 
// ...
};
</code></pre>
<p>Initialisierung in der Klassendeklaration geht nicht:</p>
<pre><code class="language-cpp">Kunde meinKunde = new Kunde();
</code></pre>
<pre><code class="language-cpp">Mitarbeiter meinBetreuer = new Mitarbeiter();
</code></pre>
<p>eine Initialisierung mit new ist hier aber eh nicht korrekt, bei Stackobjekten ist kein new erforderlich und auch kein manuelles delete.</p>
<p>Ich nehme an du kommst von Java? <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/1580728</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1580728</guid><dc:creator><![CDATA[Paul Manns]]></dc:creator><pubDate>Fri, 12 Sep 2008 09:15:11 GMT</pubDate></item><item><title><![CDATA[Reply to C++ Klassenerstellung - Bankenbeispiel - Fehler (type not) on Fri, 12 Sep 2008 09:11:25 GMT]]></title><description><![CDATA[<p>Du hast vorher mit Java gearbeitet, oder?<br />
Weil mit new erstellst du ein Objekt auf dem Heap wie bei Java, nur ist der Rückgabetyp ein Pointer und deine ganzen Variablendefinitionen sind eben keine sondern Instanzen eben jener Objekte.</p>
<p>Desweiteren hast du ein Include-Problem. Kunde inkludiert Mitarbeiter das Kunde inkludiert das Mitarbeiter inkludiert das Kunde inkludiert das Mitarbeiter inkludiert das Kunde inkludiert das Mitarbeiter inkludiert das Kunde inkludiert das Mitarbeiter inkludiert das Kunde inkludiert das Mitarbeiter inkludiert das Kunde inkludiert das Mitarbeiter inkludiert das Kunde inkludiert das Mitarbeiter inkludiert das Kunde inkludiert das Mitarbeiter inkludiert das Kunde inkludiert das Mitarbeiter inkludiert das Kunde inkludiert das Mitarbeiter inkludiert das Kunde inkludiert das Mitarbeiter inkludiert das Kunde inkludiert das Mitarbeiter inkludiert das Kunde inkludiert das Mitarbeiter inkludiert das Kunde inkludiert das Mitarbeiter inkludiert das Kunde inkludiert das Mitarbeiter inkludiert das Kunde inkludiert das ... ... ...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1580729</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1580729</guid><dc:creator><![CDATA[Fellhuhn]]></dc:creator><pubDate>Fri, 12 Sep 2008 09:11:25 GMT</pubDate></item><item><title><![CDATA[Reply to C++ Klassenerstellung - Bankenbeispiel - Fehler (type not) on Fri, 12 Sep 2008 09:38:34 GMT]]></title><description><![CDATA[<p>Fellhuhn schrieb:</p>
<blockquote>
<p>Kunde inkludiert Mitarbeiter das Kunde inkludiert das Mitarbeiter inkludiert das Kunde inkludiert das Mitarbeiter inkludiert das Kunde inkludiert das Mitarbeiter inkludiert das Kunde inkludiert das Mitarbeiter inkludiert das Kunde inkludiert das Mitarbeiter inkludiert das Kunde inkludiert das Mitarbeiter inkludiert das Kunde inkludiert das Mitarbeiter inkludiert das Kunde inkludiert das Mitarbeiter inkludiert das Kunde inkludiert das Mitarbeiter inkludiert das Kunde inkludiert das Mitarbeiter inkludiert das Kunde inkludiert das Mitarbeiter inkludiert das Kunde inkludiert das Mitarbeiter inkludiert das Kunde inkludiert das Mitarbeiter inkludiert das Kunde inkludiert das Mitarbeiter inkludiert das Kunde inkludiert das Mitarbeiter inkludiert das Kunde inkludiert das ... ... ...</p>
</blockquote>
<p>Sehr schön erklärt <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/1580753</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1580753</guid><dc:creator><![CDATA[jencas]]></dc:creator><pubDate>Fri, 12 Sep 2008 09:38:34 GMT</pubDate></item><item><title><![CDATA[Reply to C++ Klassenerstellung - Bankenbeispiel - Fehler (type not) on Fri, 12 Sep 2008 09:39:19 GMT]]></title><description><![CDATA[<p>Fellhuhn schrieb:</p>
<blockquote>
<p>Desweiteren hast du ein Include-Problem. Kunde inkludiert Mitarbeiter das Kunde inkludiert das Mitarbeiter inkludiert das Kunde inkludiert das Mitarbeiter inkludiert das Kunde inkludiert das Mitarbeiter inkludiert das Kunde inkludiert das Mitarbeiter inkludiert das Kunde inkludiert das Mitarbeiter inkludiert das Kunde inkludiert das Mitarbeiter inkludiert das Kunde inkludiert das Mitarbeiter inkludiert das Kunde inkludiert das Mitarbeiter inkludiert das Kunde inkludiert das Mitarbeiter inkludiert das Kunde inkludiert das Mitarbeiter inkludiert das Kunde inkludiert das Mitarbeiter inkludiert das Kunde inkludiert das Mitarbeiter inkludiert das Kunde inkludiert das Mitarbeiter inkludiert das Kunde inkludiert das Mitarbeiter inkludiert das Kunde inkludiert das Mitarbeiter inkludiert das Kunde inkludiert das ... ... ...</p>
</blockquote>
<p>Das stimmt nicht ganz. Die Include-Guards verhindern dies. Das Problem liegt wo anders.<br />
Nehmen wir an, es wird zuerst die Mitarbeiter.h includiert. <code>MITARBEITER_H_</code> ist noch nicht definiert, wird es aber jetzt. Kunde.h wird nun includiert, wegen der Anweisung in Mitarbeiter.h. In Kunde.h wird <code>KUNDE_H_</code> definiert, da es noch nicht definiert war. Als nächstes soll Mitarbeiter.h includiert werden. Diese Headerdatei wird aber einfach übersprüngen, da <code>MITARBEITER_H_</code> bereits definiert ist. Dadurch ist die Klasse Mitarbeiter in der Klasse Kunde nicht bekannt. Die Klasse Mitarbeiter wird erst nach der Klasse Kunde deklariert.<br />
Das ganze kann man auch anders rum durchspielen, wenn zuerst Kunde.h includiert wird.</p>
<p>Es wurde bereits erwähnt, ich füge es nochmals dazu:<br />
Forward Declaration</p>
<p>Zudem solltest du dir wirklich die Unterschiede zwischen Java und C++ klar machen <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>
<p>Grüssli</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1580757</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1580757</guid><dc:creator><![CDATA[Dravere]]></dc:creator><pubDate>Fri, 12 Sep 2008 09:39:19 GMT</pubDate></item><item><title><![CDATA[Reply to C++ Klassenerstellung - Bankenbeispiel - Fehler (type not) on Fri, 12 Sep 2008 09:40:07 GMT]]></title><description><![CDATA[<p>Hallo,<br />
in der Tat hab vorher mit Java gearbeitet und wollte jetzt einmal ein altes Java Beispiel in C++ umwandlen.</p>
<p>Habt ihr evtl tipps wo ich da evtl etwas gutes zum umsteigen finden könnte?</p>
<p>Wie müsste ich denn die Objekterzeugung umwandeln?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1580758</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1580758</guid><dc:creator><![CDATA[jensa]]></dc:creator><pubDate>Fri, 12 Sep 2008 09:40:07 GMT</pubDate></item><item><title><![CDATA[Reply to C++ Klassenerstellung - Bankenbeispiel - Fehler (type not) on Fri, 12 Sep 2008 09:45:43 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">#ifndef MITARBEITER_H_
#define MITARBEITER_H_
#include &quot;Kunde.h&quot;
#include &lt;string&gt;
class Mitarbeiter
{

private:
	Kunde meinKunde = new Kunde();// &lt;- das macht mal in C++ noch nicht! Ausserdem gibt der Ausdruck new Kunde einen *Kunde zuruck, so dass Kunde* meinKunde stehen muss.
	std::string name;

};
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1580765</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1580765</guid><dc:creator><![CDATA[Zeus]]></dc:creator><pubDate>Fri, 12 Sep 2008 09:45:43 GMT</pubDate></item><item><title><![CDATA[Reply to C++ Klassenerstellung - Bankenbeispiel - Fehler (type not) on Fri, 12 Sep 2008 09:50:40 GMT]]></title><description><![CDATA[<p>Zeus schrieb:</p>
<blockquote>
<pre><code class="language-cpp">Kunde meinKunde = new Kunde();// &lt;- das macht mal in C++ noch nicht! };
</code></pre>
</blockquote>
<p>Jetzt überred' sie nicht zu Pointern und Heap-(/Freememory-)objekten, wo n Stackobjekt genausogut funktioniert <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/1580769</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1580769</guid><dc:creator><![CDATA[Paul Manns]]></dc:creator><pubDate>Fri, 12 Sep 2008 09:50:40 GMT</pubDate></item><item><title><![CDATA[Reply to C++ Klassenerstellung - Bankenbeispiel - Fehler (type not) on Fri, 12 Sep 2008 09:53:46 GMT]]></title><description><![CDATA[<p>jensa schrieb:</p>
<blockquote>
<p>Habt ihr evtl tipps wo ich da evtl etwas gutes zum umsteigen finden könnte?</p>
</blockquote>
<p>Kauf dir ein gutes C++ Buch. Da du dich wegen Java schon ein wenig im Programmieren auskennen solltest, denke ich kannst du durchaus &quot;Die C++ Programmiersprache&quot; von Bjarne Stroustrup verkraften.</p>
<p>jensa schrieb:</p>
<blockquote>
<p>Wie müsste ich denn die Objekterzeugung umwandeln?</p>
</blockquote>
<p>Vielleicht sollte man da ein zwei Dinge klar stellen:<br />
1. C++ hat keinen Garbage Collector. Die Speicherverwaltung musst du selbst übernehmen.<br />
2. Es gibt mehrere Wege ein Objekt zu erzeugen. Man kann das Objekt auf den Heap setzen, es auf den Stack tun oder aber in eine Klasse kapseln und es kommt dann am gleichen Ort hin, wie auch das Objekt der Klasse hinkommt.</p>
<pre><code class="language-cpp">int* i = new int; // int liegt auf dem Heap.
// ...
delete i; // gibt das Objekt wieder frei. Ganz wichtig! Sonst hast du ein Memory Leak.

void foo()
{
  int i; // i liegt auf dem Stack.
} // wird automatisch am Ende des Scopes freigegeben.

class Foo
{
private:
  int i; // i ist ein Objekt, welches mit Foo erstellt wird.
  int* p; // p ist ein Zeiger auf ein int-Objekt.
          // p kann auf ein Stack- oder Heapobjekt verweisen.
}
</code></pre>
<p>Aber naja, am besten mal die Grundlagen durchlesen. Denn es ist ganz wichtig anzumerken, dass Java und C++ sich stark unterscheiden, auch wenn es anfänglich nicht der Fall zu sein scheint. Aber bekanntlich trügt der Schein. <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>
<p>Grüssli</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1580771</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1580771</guid><dc:creator><![CDATA[Dravere]]></dc:creator><pubDate>Fri, 12 Sep 2008 09:53:46 GMT</pubDate></item></channel></rss>