<?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[set-Container in einer h-Datei deklarieren?]]></title><description><![CDATA[<p>Hi Leute!</p>
<p>Ich möchte einen set-Container in einer h-Datei mit meinem eigenen Datentypen &quot;person&quot; deklarieren. Laut compiler bekomme ich da aber einige Fehler, unter anderem, dass ; vor dem Operator &lt; fehlt. Ich weiß ehrlich gesagt nicht was ich da so falsch gemacht haben soll:</p>
<pre><code class="language-cpp">#ifndef VERWALTUNG__H
#define VERWALTUNG__H

#include&lt;set&gt;
#include&quot;person.h&quot;

class verwaltung
{
private:
	char* faName;
	set&lt;person&gt; mitarbeiter;

public:
	verwaltung(void);
	~verwaltung(void);

	void addMitarbeiter(person p);
	/*void entlasseMitarbeiter();
	void gehaltMitarbeiter();
	void druckeMitarbeiter();
	void berechneKosten();*/
};

#endif
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/303618/set-container-in-einer-h-datei-deklarieren</link><generator>RSS for Node</generator><lastBuildDate>Mon, 10 Aug 2026 07:23:48 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/303618.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 18 May 2012 14:58:56 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to set-Container in einer h-Datei deklarieren? on Fri, 18 May 2012 14:58:56 GMT]]></title><description><![CDATA[<p>Hi Leute!</p>
<p>Ich möchte einen set-Container in einer h-Datei mit meinem eigenen Datentypen &quot;person&quot; deklarieren. Laut compiler bekomme ich da aber einige Fehler, unter anderem, dass ; vor dem Operator &lt; fehlt. Ich weiß ehrlich gesagt nicht was ich da so falsch gemacht haben soll:</p>
<pre><code class="language-cpp">#ifndef VERWALTUNG__H
#define VERWALTUNG__H

#include&lt;set&gt;
#include&quot;person.h&quot;

class verwaltung
{
private:
	char* faName;
	set&lt;person&gt; mitarbeiter;

public:
	verwaltung(void);
	~verwaltung(void);

	void addMitarbeiter(person p);
	/*void entlasseMitarbeiter();
	void gehaltMitarbeiter();
	void druckeMitarbeiter();
	void berechneKosten();*/
};

#endif
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2212856</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2212856</guid><dc:creator><![CDATA[vip*r]]></dc:creator><pubDate>Fri, 18 May 2012 14:58:56 GMT</pubDate></item><item><title><![CDATA[Reply to set-Container in einer h-Datei deklarieren? on Fri, 18 May 2012 15:02:38 GMT]]></title><description><![CDATA[<p>**std::**set</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2212858</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2212858</guid><dc:creator><![CDATA[Bashar]]></dc:creator><pubDate>Fri, 18 May 2012 15:02:38 GMT</pubDate></item><item><title><![CDATA[Reply to set-Container in einer h-Datei deklarieren? on Fri, 18 May 2012 15:04:37 GMT]]></title><description><![CDATA[<p>Oh, das hätt ich selber wissen können. Leider.</p>
<p>Naja jetzt mosert der Compiler jedenfalls, dass person nicht deklariert sei.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2212862</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2212862</guid><dc:creator><![CDATA[vip*r]]></dc:creator><pubDate>Fri, 18 May 2012 15:04:37 GMT</pubDate></item><item><title><![CDATA[Reply to set-Container in einer h-Datei deklarieren? on Fri, 18 May 2012 15:10:30 GMT]]></title><description><![CDATA[<p>Wahrscheinlich zu recht. Aber ohne den Inhalt von person.h zu kennen, kann man das nicht beurteilen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2212864</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2212864</guid><dc:creator><![CDATA[Bashar]]></dc:creator><pubDate>Fri, 18 May 2012 15:10:30 GMT</pubDate></item><item><title><![CDATA[Reply to set-Container in einer h-Datei deklarieren? on Fri, 18 May 2012 15:39:47 GMT]]></title><description><![CDATA[<p>MandarfauchLeerzeichenbeimIncludemachen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2212869</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2212869</guid><dc:creator><![CDATA[knivil]]></dc:creator><pubDate>Fri, 18 May 2012 15:39:47 GMT</pubDate></item><item><title><![CDATA[Reply to set-Container in einer h-Datei deklarieren? on Sat, 19 May 2012 13:11:38 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/904">@Bashar</a>:</p>
<p>Hier ist die Person.h:</p>
<pre><code class="language-cpp">#ifndef PERSON__H
#define PERSON__H
#include &quot;verwaltung.h&quot;

class person
{
public:
	char* name;
	char* wohnort;
	unsigned int gehalt;

	person(void);
	~person(void);

	void setName(char* inputName);
	void setWohnort(char* inputWohnort);
	void setGehalt(int inputGehalt);
};

#endif
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2213112</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2213112</guid><dc:creator><![CDATA[vip*r]]></dc:creator><pubDate>Sat, 19 May 2012 13:11:38 GMT</pubDate></item><item><title><![CDATA[Reply to set-Container in einer h-Datei deklarieren? on Sat, 19 May 2012 13:14:58 GMT]]></title><description><![CDATA[<p>Und da hast du auch schon dein Problem: verwaltung.h und person.h inkludieren sich gegenseitig.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2213114</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2213114</guid><dc:creator><![CDATA[dot]]></dc:creator><pubDate>Sat, 19 May 2012 13:14:58 GMT</pubDate></item><item><title><![CDATA[Reply to set-Container in einer h-Datei deklarieren? on Sat, 19 May 2012 13:16:59 GMT]]></title><description><![CDATA[<p>Hm, ok. Dann muss ich wohl bei Person die inkludierung von Verwaltung rausnehmen. dann bekomm ich nun aber diesen fehler:</p>
<p>Fehler 6 error C2676: Binärer Operator '&lt;': 'const person' definiert diesen Operator oder eine Konvertierung in einen für den vordefinierten Operator geeigneten Typ nicht c:\program files (x86)\microsoft visual studio 10.0\vc\include\xfunctional 125</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2213115</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2213115</guid><dc:creator><![CDATA[vip*r]]></dc:creator><pubDate>Sat, 19 May 2012 13:16:59 GMT</pubDate></item><item><title><![CDATA[Reply to set-Container in einer h-Datei deklarieren? on Sat, 19 May 2012 13:20:01 GMT]]></title><description><![CDATA[<p>Naja, das std::set braucht eben einen Vergleichsoperator für die Personen damit es sortieren kann...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2213116</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2213116</guid><dc:creator><![CDATA[dot]]></dc:creator><pubDate>Sat, 19 May 2012 13:20:01 GMT</pubDate></item><item><title><![CDATA[Reply to set-Container in einer h-Datei deklarieren? on Sat, 19 May 2012 13:19:40 GMT]]></title><description><![CDATA[<p>Da muss ich wohl den operator überladen, oder?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2213117</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2213117</guid><dc:creator><![CDATA[vip*r]]></dc:creator><pubDate>Sat, 19 May 2012 13:19:40 GMT</pubDate></item><item><title><![CDATA[Reply to set-Container in einer h-Datei deklarieren? on Sat, 19 May 2012 13:20:13 GMT]]></title><description><![CDATA[<p>Ja</p>
<p>Aber warum genau willst du denn eigentlich ein std::set benutzen? Wieso reicht ein vector nicht aus?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2213118</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2213118</guid><dc:creator><![CDATA[dot]]></dc:creator><pubDate>Sat, 19 May 2012 13:20:13 GMT</pubDate></item><item><title><![CDATA[Reply to set-Container in einer h-Datei deklarieren? on Sat, 19 May 2012 13:23:48 GMT]]></title><description><![CDATA[<p>Eine set deshalb weil's die aufgabe vorschreibt...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2213121</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2213121</guid><dc:creator><![CDATA[vip*r]]></dc:creator><pubDate>Sat, 19 May 2012 13:23:48 GMT</pubDate></item><item><title><![CDATA[Reply to set-Container in einer h-Datei deklarieren? on Sat, 19 May 2012 13:32:36 GMT]]></title><description><![CDATA[<p>Ich hab mir nun diese methode geschrieben, die verschiedene mitarbeiter in die set einfügen soll:</p>
<pre><code class="language-cpp">void verwaltung::addMitarbeiter(person pers)
{
	mitarbeiter.insert(pers);
}
</code></pre>
<p>Wenn ich nun in der main mehrere personen anlege und diese bspw. 3 personen in der verwaltung &quot;zusammenfassen&quot; will, dann funktioniert das soweit, bis eine zweite person zur set hinzugefügt wird. wenn das passieren soll, dann kackt mir das programm mit den Worten &quot;invalid &lt; operator&quot; ab. Ich denke, die Überladung hat dann nicht so funktioniert. Die string.h hab ich natürlich inkludiert. Hier die Überladung:</p>
<pre><code class="language-cpp">int operator &lt; (const person p1, const person p2)	//Überladung, damit die set sortieren kann
{
	return strcmp(p1.name, p2.name);
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2213123</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2213123</guid><dc:creator><![CDATA[vip*r]]></dc:creator><pubDate>Sat, 19 May 2012 13:32:36 GMT</pubDate></item><item><title><![CDATA[Reply to set-Container in einer h-Datei deklarieren? on Sat, 19 May 2012 13:36:45 GMT]]></title><description><![CDATA[<p>Die Vergleichsoperation eines sets (und überall in der C++-Standardbibliothek) soll true zurückgeben, wenn die Ordnung erfüllt ist, anernfalls false. Nun guck dir mal an, was strcmp wann zurück gibt.</p>
<p>Das kommt eben vom Mischen von C und C++. Wurde dir schon oft genug gesagt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2213125</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2213125</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Sat, 19 May 2012 13:36:45 GMT</pubDate></item><item><title><![CDATA[Reply to set-Container in einer h-Datei deklarieren? on Sat, 19 May 2012 13:54:27 GMT]]></title><description><![CDATA[<p>Ok, SeppJ. Du hast Recht. Ich bin ja momentan eh schon dabei, dass ich C NICHT MEHR mit C++ mische. Das geht halt nicht von jetzt auf gleich; leider. Hier nun die neue Methode:</p>
<pre><code class="language-cpp">int operator &lt; (const person p1, const person p2)	//Überladung, damit die set sortieren kann
{
	//Wert größer als 0 zeigt an, dass der Wert des ersten Zeichens im String p1.name welches nicht passt,
	//größer ist als der Wert des Zeichens im String p2.name.
	//Wert gleich 0 zeigt an, dass beide Strings gleich lang sind.
	if(strcmp(p1.name, p2.name) &lt; 0)
	{
		return true;	//Wenn Ordnung erfüllt ist, gib true zurück
	}
	else
	{
		return false;	//Ansonsten false
	}
}
</code></pre>
<p>Wie hätte ich denn dann den Operator überladen sollen wenn ich mit der C-Bibliothek string.h in C++ nicht arbeiten soll?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2213128</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2213128</guid><dc:creator><![CDATA[vip*r]]></dc:creator><pubDate>Sat, 19 May 2012 13:54:27 GMT</pubDate></item><item><title><![CDATA[Reply to set-Container in einer h-Datei deklarieren? on Sat, 19 May 2012 13:59:17 GMT]]></title><description><![CDATA[<p>Mini-Programmierübung: Schreibe eine möglichst kurze Funktion, die das gleiche Ergebnis bei gleicher Eingabe zurück gibt wie foo:</p>
<pre><code class="language-cpp">bool foo(bool b)
{
  if (b == true)
    return true;
  else if (b == false)
    return false; 
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2213133</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2213133</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Sat, 19 May 2012 13:59:17 GMT</pubDate></item><item><title><![CDATA[Reply to set-Container in einer h-Datei deklarieren? on Sat, 19 May 2012 14:03:29 GMT]]></title><description><![CDATA[<p>vip@r schrieb:</p>
<blockquote>
<p>Wie hätte ich denn dann den Operator überladen sollen wenn ich mit der C-Bibliothek string.h in C++ nicht arbeiten soll?</p>
</blockquote>
<p>Du sollst eben gleich std::string benutzen. Dann sparst du dir auch den komplizierten Konstruktorrumpf deiner Klassen, den nicht-default Destruktor sparst du ganz ein und es ist außerdem kein Fehler mehr, dass du, wie bisher, den Kopierkonstruktor und den Zuweisungsoperator weggelassen hast.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2213137</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2213137</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Sat, 19 May 2012 14:03:29 GMT</pubDate></item><item><title><![CDATA[Reply to set-Container in einer h-Datei deklarieren? on Sat, 19 May 2012 14:22:26 GMT]]></title><description><![CDATA[<p>SeppJ schrieb:</p>
<blockquote>
<p>Du sollst eben gleich std::string benutzen.</p>
</blockquote>
<p>Hm, darauf bin ich jetzt gar nicht gekommen. C++ bietet ja in der Tat eine Datentypen string an. Da brauch ich ja dann gar nicht mit char-Pointern arbeiten, oder? Das würde aber dann bedeuten, dass ich meine zwei Klassen in denen ich char-Pointer benutzt habe, auf string umstellen muss, oder?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2213143</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2213143</guid><dc:creator><![CDATA[vip*r]]></dc:creator><pubDate>Sat, 19 May 2012 14:22:26 GMT</pubDate></item><item><title><![CDATA[Reply to set-Container in einer h-Datei deklarieren? on Sat, 19 May 2012 15:03:10 GMT]]></title><description><![CDATA[<p>vip@r schrieb:</p>
<blockquote>
<p>Das würde aber dann bedeuten, dass ich meine zwei Klassen in denen ich char-Pointer benutzt habe, auf string umstellen muss, oder?</p>
</blockquote>
<p>Ja, wenn man von char* auf string umstellen möchte, dann muss man dazu von char* auf string umstellen.</p>
<p>Den Vergleichsoperator für Person müsstest du natürlich trotzdem schreiben (oder einen kleinen Lambda-Ausdruck benutzen). Dies geht aber sehr einfach, da string bereits alle Vergleichsoperatoren (mit den in C++ üblichen Konventionen) kennt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2213161</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2213161</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Sat, 19 May 2012 15:03:10 GMT</pubDate></item><item><title><![CDATA[Reply to set-Container in einer h-Datei deklarieren? on Sat, 19 May 2012 16:02:18 GMT]]></title><description><![CDATA[<p>Ich möchte jetzt, auch wenn es von der Übung nicht mehr explizit verlangt wird, noch eine Methode schreiben, die mir per Tastaturaufforderung die Möglichkeit bietet Personen anzulegen, schreiben. Bisher habe ich die Personen in der main so wie's unten steht angelegt. Was ich aber nun in meiner neuen Methode nicht ganz verstehe, ist, wie ich einen sich selbst verändernden Variablennamen hinbekomme. Ich denke ihr versteht was ich meine, oder?</p>
<pre><code class="language-cpp">person myPerson1, myPerson2, myPerson3;
	verwaltung myVerwaltung;

	myPerson1.setName(&quot;aaa&quot;);
	myPerson1.setWohnort(&quot;bbb&quot;);
	myPerson1.setGehalt(3500);
	myVerwaltung.addMitarbeiter(myPerson1);
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2213178</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2213178</guid><dc:creator><![CDATA[vip*r]]></dc:creator><pubDate>Sat, 19 May 2012 16:02:18 GMT</pubDate></item><item><title><![CDATA[Reply to set-Container in einer h-Datei deklarieren? on Sat, 19 May 2012 16:15:59 GMT]]></title><description><![CDATA[<p>vip@r schrieb:</p>
<blockquote>
<p>Ich denke ihr versteht was ich meine, oder?</p>
</blockquote>
<p>Nein. Selbstverändernde Variablennamen? Macht keinen Sinn. Was möchtest du erreichen? Deine Äußerungen deuten darauf hin, dass du irgendwelche grundlegenden Dinge völlig falsch verstanden hast.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2213189</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2213189</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Sat, 19 May 2012 16:15:59 GMT</pubDate></item></channel></rss>