<?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[Würde mich über Ratschläge freuen.]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich bin noch Programmier-Anfängerin und würde mich über eure Hilfe sehr freuen. Ich habe folgendes Problem:<br />
Ich möchte ein Programm schreiben, das aus den zwei Klassen Restaurant und Reservierung besteht.<br />
Der Konstruktor von der Klasse Restaurant ist dafür zuständig, mir gemäß der Anzahl der Tische Speicher zu allokieren. Die einzelnen Elemente des Arrays werden auf false gesetzt, somit sind diese frei bzw. nicht belegt.<br />
Der ist meines Erachtens auch richtig. Hoffe ich zumindest <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="🙂"
    /><br />
Der Destruktor müsste auch richtig sein.</p>
<p>Womit ich Probleme habe ist der operator+= und operator&lt;&lt;. Mit dem operator+= möchte ich, dass der dort srehende Tisch (int tischnummer) für mein Objekt vom Typ Restaurant reserviert wird. Dies geschieht mit true. Aber dies scheint nicht ganz so zu klappen, wie ich mir das vorgestellt habe. Auch bekomme ich als Programmausgabe nichts Gescheites, irgendwelche Stack-Probleme.<br />
Weiß einer Rat, wie ich das Prgramm modifizieren sollte? Mein Compiler zeigt mir leider keine Fehler an, scheint dann wohl syntaktisch in Ordnung zu sein?</p>
<pre><code>#include &lt;iostream&gt;
using namespace std;

class Reservierung;

class Restaurant {
	private:
	string name;
	int anzahl_tische;
	bool* tische;
	public:
	//a) Konstruktor
	Restaurant(string, int);
	//b) Destruktor
	void delete_dyn();
	~Restaurant();
	Restaurant&amp; operator+=(const Reservierung&amp;);
	friend ostream&amp; operator&lt;&lt;(ostream&amp; os, Restaurant);
};

class Reservierung {
	private:
	int tischnummer;
	public:

	friend class Restaurant;
};

Restaurant::Restaurant(string n, int a): name(n), anzahl_tische(a){

	tische = new bool[anzahl_tische];

	for (int i=0; i&lt;anzahl_tische;i++){

	tische[i]=false;
	}	
	}

		void Restaurant::delete_dyn(){
		delete[] tische;
		}
		Restaurant::~Restaurant(){
		this-&gt;delete_dyn();
		}

	Restaurant&amp; Restaurant::operator+= (const Reservierung&amp; s ){
	Restaurant temp(name, anzahl_tische);
	temp.tische[0]=s.tischnummer;
	temp.tische[0]=true;
	return *this;
	}

	ostream&amp; operator&lt;&lt;(ostream&amp; os, Restaurant k){
		os&lt;&lt;&quot;Der Name des Rasturants ist: &quot;&lt;&lt;k.name&lt;&lt;endl;
		for(int i=0; i&lt; k.anzahl_tische ; i++){
			os&lt;&lt;&quot;Nr. &quot;&lt;&lt;i&lt;&lt;&quot; ist &quot;&lt;&lt;k.tische[i]&lt;&lt;endl;
			} 

		return os;
		}

int main (){

	Restaurant ha(&quot;Ritz&quot;, 5);
	Reservierung x;
	ha+=x;
	cout&lt;&lt;ha&lt;&lt;endl;

	return 0;
	}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/312245/würde-mich-über-ratschläge-freuen</link><generator>RSS for Node</generator><lastBuildDate>Sun, 02 Aug 2026 23:19:12 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/312245.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 30 Dec 2012 01:52:40 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Würde mich über Ratschläge freuen. on Sun, 30 Dec 2012 01:52:40 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich bin noch Programmier-Anfängerin und würde mich über eure Hilfe sehr freuen. Ich habe folgendes Problem:<br />
Ich möchte ein Programm schreiben, das aus den zwei Klassen Restaurant und Reservierung besteht.<br />
Der Konstruktor von der Klasse Restaurant ist dafür zuständig, mir gemäß der Anzahl der Tische Speicher zu allokieren. Die einzelnen Elemente des Arrays werden auf false gesetzt, somit sind diese frei bzw. nicht belegt.<br />
Der ist meines Erachtens auch richtig. Hoffe ich zumindest <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="🙂"
    /><br />
Der Destruktor müsste auch richtig sein.</p>
<p>Womit ich Probleme habe ist der operator+= und operator&lt;&lt;. Mit dem operator+= möchte ich, dass der dort srehende Tisch (int tischnummer) für mein Objekt vom Typ Restaurant reserviert wird. Dies geschieht mit true. Aber dies scheint nicht ganz so zu klappen, wie ich mir das vorgestellt habe. Auch bekomme ich als Programmausgabe nichts Gescheites, irgendwelche Stack-Probleme.<br />
Weiß einer Rat, wie ich das Prgramm modifizieren sollte? Mein Compiler zeigt mir leider keine Fehler an, scheint dann wohl syntaktisch in Ordnung zu sein?</p>
<pre><code>#include &lt;iostream&gt;
using namespace std;

class Reservierung;

class Restaurant {
	private:
	string name;
	int anzahl_tische;
	bool* tische;
	public:
	//a) Konstruktor
	Restaurant(string, int);
	//b) Destruktor
	void delete_dyn();
	~Restaurant();
	Restaurant&amp; operator+=(const Reservierung&amp;);
	friend ostream&amp; operator&lt;&lt;(ostream&amp; os, Restaurant);
};

class Reservierung {
	private:
	int tischnummer;
	public:

	friend class Restaurant;
};

Restaurant::Restaurant(string n, int a): name(n), anzahl_tische(a){

	tische = new bool[anzahl_tische];

	for (int i=0; i&lt;anzahl_tische;i++){

	tische[i]=false;
	}	
	}

		void Restaurant::delete_dyn(){
		delete[] tische;
		}
		Restaurant::~Restaurant(){
		this-&gt;delete_dyn();
		}

	Restaurant&amp; Restaurant::operator+= (const Reservierung&amp; s ){
	Restaurant temp(name, anzahl_tische);
	temp.tische[0]=s.tischnummer;
	temp.tische[0]=true;
	return *this;
	}

	ostream&amp; operator&lt;&lt;(ostream&amp; os, Restaurant k){
		os&lt;&lt;&quot;Der Name des Rasturants ist: &quot;&lt;&lt;k.name&lt;&lt;endl;
		for(int i=0; i&lt; k.anzahl_tische ; i++){
			os&lt;&lt;&quot;Nr. &quot;&lt;&lt;i&lt;&lt;&quot; ist &quot;&lt;&lt;k.tische[i]&lt;&lt;endl;
			} 

		return os;
		}

int main (){

	Restaurant ha(&quot;Ritz&quot;, 5);
	Reservierung x;
	ha+=x;
	cout&lt;&lt;ha&lt;&lt;endl;

	return 0;
	}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2284374</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2284374</guid><dc:creator><![CDATA[DragonLady]]></dc:creator><pubDate>Sun, 30 Dec 2012 01:52:40 GMT</pubDate></item><item><title><![CDATA[Reply to Würde mich über Ratschläge freuen. on Sun, 30 Dec 2012 05:32:05 GMT]]></title><description><![CDATA[<p>DragonLady schrieb:</p>
<blockquote>
<p>Der Konstruktor von der Klasse Restaurant ist dafür zuständig, mir gemäß der Anzahl der Tische Speicher zu allokieren.</p>
</blockquote>
<p>Ist das dein Design oder das eines Aufgabenstellers? Ist auf jeden Fall schon mal komisch, das man bei einem Restaurant keine zusätzlichen Stühle mehr reinstellen kann.</p>
<blockquote>
<p>Womit ich Probleme habe ist der operator+=</p>
</blockquote>
<p>Das wird this nie geändert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2284377</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2284377</guid><dc:creator><![CDATA[IstDasNochPunkrock]]></dc:creator><pubDate>Sun, 30 Dec 2012 05:32:05 GMT</pubDate></item><item><title><![CDATA[Reply to Würde mich über Ratschläge freuen. on Sun, 30 Dec 2012 05:45:37 GMT]]></title><description><![CDATA[<pre><code>#include &lt;iostream&gt;
using namespace std; // Im header kein using namespace

class Reservierung;

class Restaurant {
private:
	string name;
	int anzahl_tische;
	bool* tische; // Warum nicht std::vector&lt;bool&gt; bzw. std::array&lt;bool&gt;?
public:
	// a) Konstruktor
	Restaurant(string, int);
	// b) Destruktor
	void delete_dyn();
	~Restaurant();
	Restaurant&amp; operator+=(const Reservierung&amp;);
	friend ostream&amp; operator&lt;&lt;(ostream&amp; os, Restaurant);
};

class Reservierung {
private:
	int tischnummer;
public:
	friend class Restaurant;
};

Restaurant::Restaurant(string n, int a): name(n), anzahl_tische(a){
	tische = new bool[anzahl_tische]; // s.o.

	for (int i=0; i&lt;anzahl_tische;i++){
		tische[i]=false;
	}	
}

// nicht benötigt mit std::vector
void Restaurant::delete_dyn() {
	delete[] tische;
}

// nicht benötigt mit std::vector
Restaurant::~Restaurant() {
	this-&gt;delete_dyn();
}

Restaurant&amp; Restaurant::operator+= (const Reservierung&amp; s ){
	// Wenn du eine Reservierung hinzufügst, warum erstellst du du ein neues Restaurant?
	Restaurant temp(name, anzahl_tische);
	// Warum greifst du auf das neue Restaurant zu, nicht auf das richtige?
	// Warum tische[0] ?
	temp.tische[0]=s.tischnummer;
	temp.tische[0]=true;
	// warum gibst du das gleiche Objekt zurück, ohne was an ihm verändert zuhaben?
	return *this;
}

ostream&amp; operator&lt;&lt;(ostream&amp; os, Restaurant k){
	os &lt;&lt; &quot;Der Name des Rasturants ist: &quot; &lt;&lt; k.name &lt;&lt; endl; // besser '\n' anstelle von endl;
	for(int i=0; i&lt; k.anzahl_tische ; i++){
		os &lt;&lt; &quot;Nr. &quot; &lt;&lt; i &lt;&lt; &quot; ist &quot; &lt;&lt; k.tische[i] &lt;&lt; endl; // s.o.
	} 
	return os;
}

int main () {
	Restaurant ha(&quot;Ritz&quot;, 5);
	Reservierung x;
	ha += x;
	cout &lt;&lt; ha &lt;&lt; endl;

	return 0; // implizit
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2284378</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2284378</guid><dc:creator><![CDATA[Cyres]]></dc:creator><pubDate>Sun, 30 Dec 2012 05:45:37 GMT</pubDate></item><item><title><![CDATA[Reply to Würde mich über Ratschläge freuen. on Sun, 30 Dec 2012 16:00:15 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>naja, ich soll mit dem operator+= die tischnummer mit Eins belegen und diesen belegten Tisch meinem Objekt Restaurant hinzufügen. Also der int tischnummer ist ein Tisch von anzahl_tische, lediglich im Gegensatz zu den anderen Tischen belegt. Der ausgabeoperator soll mir dann im Anschluß dessen alle nicht belegten Tische untereinander ausgeben. Das klappt irgendwie nicht, weil mir die Verknüpfungen nicht gelungen sind.</p>
<p>Den Destruktor habe ich gemäß der Aufgabenstellung hinzuzufügen. Genau wie den Konstruktor. Die müssten doch richtig sein, oder?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2284472</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2284472</guid><dc:creator><![CDATA[DargonLady]]></dc:creator><pubDate>Sun, 30 Dec 2012 16:00:15 GMT</pubDate></item><item><title><![CDATA[Reply to Würde mich über Ratschläge freuen. on Sun, 30 Dec 2012 16:01:18 GMT]]></title><description><![CDATA[<p>bool* tische;</p>
<p>Das ist eine Vorgabe</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2284473</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2284473</guid><dc:creator><![CDATA[Dragonlady]]></dc:creator><pubDate>Sun, 30 Dec 2012 16:01:18 GMT</pubDate></item><item><title><![CDATA[Reply to Würde mich über Ratschläge freuen. on Sun, 30 Dec 2012 16:24:16 GMT]]></title><description><![CDATA[<p>Dragonlady schrieb:</p>
<blockquote>
<p>bool* tische;</p>
<p>Das ist eine Vorgabe</p>
</blockquote>
<p>Weißt Du überhaupt, wie Pointer/CArrays funktionieren/sind?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2284478</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2284478</guid><dc:creator><![CDATA[Cyres]]></dc:creator><pubDate>Sun, 30 Dec 2012 16:24:16 GMT</pubDate></item><item><title><![CDATA[Reply to Würde mich über Ratschläge freuen. on Sun, 30 Dec 2012 16:35:34 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>ja, im Groben schon. Ich bin halt noch eine absolute Anfängerin. Also ich bin da nicht so gut.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2284483</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2284483</guid><dc:creator><![CDATA[Dragonlady]]></dc:creator><pubDate>Sun, 30 Dec 2012 16:35:34 GMT</pubDate></item><item><title><![CDATA[Reply to Würde mich über Ratschläge freuen. on Sun, 30 Dec 2012 16:43:04 GMT]]></title><description><![CDATA[<p>DargonLady schrieb:</p>
<blockquote>
<p>Hallo,</p>
<p>naja, ich soll mit dem operator+= die tischnummer mit Eins belegen und diesen belegten Tisch meinem Objekt Restaurant hinzufügen. Also der int tischnummer ist ein Tisch von anzahl_tische, lediglich im Gegensatz zu den anderen Tischen belegt. Der ausgabeoperator soll mir dann im Anschluß dessen alle nicht belegten Tische untereinander ausgeben. Das klappt irgendwie nicht, weil mir die Verknüpfungen nicht gelungen sind.</p>
</blockquote>
<p>Hola, dass ist schwer zu verstehen.</p>
<p>So, wie ich es deute soll der operator+= (ich improvisiere!)</p>
<pre><code>suche einen index i mit tische[i] = false (das ist ein freier Tisch)
wenn kein solch i:
  setze die tischnummer der Reservierung auf -1 (das ist improvisiert!)
  ende
sonst:
  setz tische[i] auf true
  setz tischnummer der Reservierung auf i
ende
</code></pre>
<p>Das ergäbe für mich Sinn, allerdings dürftest Du dann keine Referenz auf const Reservierung übergeben, d.h. <code>Restaurant::operator+=(Reservierung&amp;);</code></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2284486</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2284486</guid><dc:creator><![CDATA[Furble Wurble]]></dc:creator><pubDate>Sun, 30 Dec 2012 16:43:04 GMT</pubDate></item><item><title><![CDATA[Reply to Würde mich über Ratschläge freuen. on Sun, 30 Dec 2012 17:04:34 GMT]]></title><description><![CDATA[<p>Leider soll ja eine Referenz zurückgegeben werden <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="🙂"
    /><br />
Das ist wirklich kompliziert. Ich habe schon so viele Programme geschrieben, dies sogar erfolgreich. In der Uni mussten wir immer die Programme abgeben. Habe ich auch immer geschafft.<br />
Nun möchte ich nur ein paar alte Klausuraufgaben machen und Nichts klappt mehr. Das nennst sich wohl programmieren. lol</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2284491</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2284491</guid><dc:creator><![CDATA[DragonLady]]></dc:creator><pubDate>Sun, 30 Dec 2012 17:04:34 GMT</pubDate></item><item><title><![CDATA[Reply to Würde mich über Ratschläge freuen. on Sun, 30 Dec 2012 17:20:42 GMT]]></title><description><![CDATA[<p>DragonLady schrieb:</p>
<blockquote>
<p>Leider soll ja eine Referenz zurückgegeben werden <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>
</blockquote>
<p>Daran ändert sich ja auch nix.</p>
<pre><code class="language-cpp">Restaurant&amp; operator+=(Reservierung&amp;);
</code></pre>
<p>siehst Du: gibt eine Referenz zurück.<br />
Ich sagte nur, dass der <em>Parameter</em> keine <code>const Reservierung&amp;</code> mehr sein darf.</p>
<p>Vom Prinzip her ändert mein Vorschlag eh nicht viel - ich habe mir nur Gedanken gemacht wie es gemeint sein <em>könnte</em>.<br />
Aber ich schau morgen beim Bleigiessen noch mal... <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/2284497</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2284497</guid><dc:creator><![CDATA[Furble Wurble]]></dc:creator><pubDate>Sun, 30 Dec 2012 17:20:42 GMT</pubDate></item><item><title><![CDATA[Reply to Würde mich über Ratschläge freuen. on Sun, 30 Dec 2012 18:40:40 GMT]]></title><description><![CDATA[<p>Ahso, ja, jetzt verstehe ich, was du meinst.<br />
Ok, danke dir. Das wäre sehr nett von dir.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2284549</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2284549</guid><dc:creator><![CDATA[DragonLady]]></dc:creator><pubDate>Sun, 30 Dec 2012 18:40:40 GMT</pubDate></item><item><title><![CDATA[Reply to Würde mich über Ratschläge freuen. on Sun, 30 Dec 2012 18:53:42 GMT]]></title><description><![CDATA[<p>Furble Wurble schrieb:</p>
<blockquote>
<p>So, wie ich es deute soll der operator+= (ich improvisiere!)<br />
[blablabla...]</p>
</blockquote>
<p>Da ich nicht denke, dass meine Improvisation sonderlich hilfreich war, aber schon denke, dass Du im großen und ganzen richtige Ansätze hast versuch ich es anders.</p>
<p>Du schreibst:</p>
<p>DargonLady schrieb:</p>
<blockquote>
<p>ich soll mit dem operator+= die tischnummer mit Eins belegen und diesen belegten Tisch meinem Objekt Restaurant hinzufügen.</p>
</blockquote>
<p>Gegeben diese Reservierung:</p>
<p>DragonLady schrieb:</p>
<blockquote>
<pre><code class="language-cpp">class Reservierung {
	private:
	int tischnummer;
	public:

	friend class Restaurant;
};
</code></pre>
</blockquote>
<p>Wie und wer soll da die Tischnummer setzen? Kein Konstruktor und <code>tischnummer</code> ist <code>private</code> .<br />
Entweder Du baust noch einen Konstruktor, oder nur Restaurant (weil eine <code>friend</code> Klasse) kann das.</p>
<p>Und wenn Du dann eine Reservierung mit tischnummer hast sieht der <code>operator+=</code> in Pseudocode so aus</p>
<pre><code>wenn -1 &lt; tischnummer &amp;&amp; tischnummer &lt; anzahl_tische
 wenn tische[tischnummer] == false
   tische[tischnummer] = true
return *this;
</code></pre>
<p>Richtig? Dann brauchst Du auch nicht an den Parametern rumschrauben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2284559</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2284559</guid><dc:creator><![CDATA[Furble Wurble]]></dc:creator><pubDate>Sun, 30 Dec 2012 18:53:42 GMT</pubDate></item><item><title><![CDATA[Reply to Würde mich über Ratschläge freuen. on Sun, 30 Dec 2012 23:24:00 GMT]]></title><description><![CDATA[<p>Ich habe schon mehrere Klausuraufgaben programmiert. Alle sind kein Problem, lediglich an diesem Programm beisse ich mir die Zähne aus. Also den Konstruktor und Destruktor habe ich ja wohl richtig(?) implementiert. Nur der operator+= und der Ausgabeoperator klappen nicht. Oder verstehe ich die aufgabenstellung nicht richtig?</p>
<p>c) Geben Sie die Definition eines operator+= an, welcher Memberfunktion der Klasse Restaurant ist, eine Referenz auf ein Objekt vom Typ Reservierung ubergeben bekommt und den in der Reservierung vermerkten Tisch für das Restaurant belegt. Der Operator soll eine Referenz auf das ver änderte Restaurant-Objekt zurückliefern.</p>
<p>d) Geben Sie die Definition eines Ausgabeoperators für die Klasse Restaurant an, welcher den Namen des Restaurants sowie die Tischnummern aller noch freien Tische in diesem Restaurant untereinander ausgibt. Der Operator soll friend der Klasse Restaurant sein (die entsprechende Deklaration muss nicht mit angegeben werden).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2284642</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2284642</guid><dc:creator><![CDATA[Dragonlady]]></dc:creator><pubDate>Sun, 30 Dec 2012 23:24:00 GMT</pubDate></item><item><title><![CDATA[Reply to Würde mich über Ratschläge freuen. on Sun, 30 Dec 2012 23:47:01 GMT]]></title><description><![CDATA[<p>also momentan schaut mein Code wie folgt aus:</p>
<pre><code>#include &lt;iostream&gt;
using namespace std;

class Reservierung;

class Restaurant {
	private:
	string name;
	int anzahl_tische;
	bool* tische;
	public:
	//a) Konstruktor
	Restaurant(string, int);
	//b) Destruktor
	//void delete_dyn();
	//~Restaurant();
	Restaurant&amp; operator+=(const Reservierung&amp;);
	friend ostream&amp; operator&lt;&lt;(ostream&amp; os, Restaurant);
};

class Reservierung {
	private:
	int tischnummer;
	public:

	friend class Restaurant;
};

Restaurant::Restaurant(string n, int a): name(n), anzahl_tische(a){

	tische = new bool[anzahl_tische];

	for (int i=0; i&lt;anzahl_tische;i++){

	tische[i]=false;
	}

	}

	/*	void Restaurant::delete_dyn(){
		delete[] tische;
		}*/
		//Restaurant::~Restaurant(){
		//delete[] tische;
		//this-&gt;delete_dyn();
		//}

	Restaurant&amp; Restaurant::operator+= (const Reservierung&amp; s ){
	Restaurant temp(name, anzahl_tische);
	//s.tischnummer=1;
	temp.tische[0]=s.tischnummer;
	temp.tische[0]=true;
	return *this;
	}

	ostream&amp; operator&lt;&lt;(ostream&amp; os, Restaurant k){
		os&lt;&lt;&quot;Der Name des Rasturants ist: &quot;&lt;&lt;k.name&lt;&lt;endl;
		for(int i=0; i&lt; k.anzahl_tische &amp;&amp; k.tische[i]==false ; i++){
			os&lt;&lt;&quot;Nr. &quot;&lt;&lt;i&lt;&lt;&quot; ist &quot;&lt;&lt;k.tische[i]&lt;&lt;endl;
			} 

		return os;
		}

int main (){

	Restaurant ha(&quot;Ritz&quot;, 9);
	//Reservierung x;
	//ha+=x;
	cout&lt;&lt;ha&lt;&lt;endl;

	return 0;
	}
</code></pre>
<p>Das Problem ist doch, dass ich tischnummer im operator+= gar nicht ändern kann. Der compiler sagt: read only. Es muss dort eine += Operation rein, nur wie?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2284644</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2284644</guid><dc:creator><![CDATA[DragonLady]]></dc:creator><pubDate>Sun, 30 Dec 2012 23:47:01 GMT</pubDate></item><item><title><![CDATA[Reply to Würde mich über Ratschläge freuen. on Mon, 31 Dec 2012 11:17:38 GMT]]></title><description><![CDATA[<p>Dragonlady schrieb:</p>
<blockquote>
<p>Ich habe schon mehrere Klausuraufgaben programmiert. Alle sind kein Problem, lediglich an diesem Programm beisse ich mir die Zähne aus. Also den Konstruktor und Destruktor habe ich ja wohl richtig(?) implementiert.</p>
</blockquote>
<p>Vielleicht nicht schön, aber richtig - jedenfalls in Deinem ersten Post.<br />
Das Problem ist wohl wirklich, dass Du die Aufgabe missverstehst.</p>
<p>Dragonlady schrieb:</p>
<blockquote>
<p>c) Geben Sie die Definition eines operator+= an, welcher Memberfunktion der Klasse Restaurant ist, eine Referenz auf ein Objekt vom Typ Reservierung ubergeben bekommt und den in der Reservierung vermerkten Tisch für das Restaurant belegt. Der Operator soll eine Referenz auf das ver änderte Restaurant-Objekt zurückliefern.<br />
[...]<br />
Das Problem ist doch, dass ich tischnummer im operator+= gar nicht ändern kann. Der compiler sagt: read only. Es muss dort eine += Operation rein, nur wie?</p>
</blockquote>
<p>Lies nochmal meinen letzten Post:</p>
<ul>
<li>Du erstellst eine Reservierung. Mit Tischnummer i.<br />
Das geschieht in <code>main</code> , dazu musst Du die Klasse Reservierung noch so verändern, dass, z.B. in einem Konstruktor die Tischnummer gesetzt werden kann.</li>
<li>Diese Reservierung wird im folgenden nicht mehr geändert.</li>
<li>Diese Reservierung übergibst Du als Argument an den <code>operator+=()</code></li>
<li>Der <code>operator+=()</code> verändert <code>*this</code> (Das Restaurant!), indem es den entsprechenden bool an der Stelle <code>tische[s.tischnummer]=true</code> setzt. (siehe dazu meinen letzten Pseudocode).</li>
<li>Fertig ist der Lack mit <code>operator+=()</code></li>
</ul>
<p>Wenn's immer noch nicht klingelt, folgende Fragen aus dem Thread hast Du noch nicht beantwortet:<br />
wozu ist das Objekt <code>temp</code> im <code>operator+=()</code> ?<br />
Wie willst Du die Tischnummer der Reservierung setzen?</p>
<p>Wenn ich mir die Evolution Deines Codes in 24h ansehe, bin ich etwas weniger optimistisch, was evtl. anstehende Prüfungen anbelangt...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2284708</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2284708</guid><dc:creator><![CDATA[Furble Wurble]]></dc:creator><pubDate>Mon, 31 Dec 2012 11:17:38 GMT</pubDate></item></channel></rss>