<?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[2 Strings innerhalb einer Methode verbinden]]></title><description><![CDATA[<p>Hallo, ich habe das Problem dass ich es nicht hinbekomme 2 Strings miteinander zu verbinden...</p>
<p>Hier ersteinmal der Code:</p>
<pre><code>#include &lt;ctime&gt;
#include &lt;iostream&gt;
#include &lt;string&gt;
using namespace std;

class Raumschiff_fabrik {
public:
	int geschwindigkeit,
		schild,
		leben;
	string name;

	Raumschiff_fabrik () {
		this -&gt; geschwindigkeit = 5;
		this -&gt; schild = 3;
		this -&gt; leben = 10;
	}

	void setName (string neuer_name) {
		this -&gt; name = neuer_name;
	}

	void treffer (int schaden) {
		int rest_schaden;
		if (this -&gt; schild &lt; schaden) {
			rest_schaden = schaden - this -&gt; schild;
			this -&gt; leben -= rest_schaden;
			if (this -&gt; leben &lt;= 0)
				this -&gt; leben = 0;
		}
	}

	string status () {
		if (this -&gt; leben &gt; 0)
			return &quot;Leben: &quot; + this -&gt; leben;
		else
			return &quot;Zerstoert&quot;;
	}
};

void main () {
	Raumschiff_fabrik schiff1,
					  schiff2;
	schiff1 . setName (&quot;Anubis&quot;);
	schiff2 . setName (&quot;Cherti&quot;);
	int runde = 1;
	int asteroid;

	srand (time (NULL));

	while (runde &lt;= 10) {
		cout &lt;&lt; &quot;    Runde #&quot; &lt;&lt; runde &lt;&lt; endl;
		asteroid = rand () % 10 + 1;
		if (schiff1 . leben &gt; 0) {
			if (! (rand () % 3)) {
				schiff1 . treffer (asteroid);
				cout &lt;&lt; &quot;      &quot; &lt;&lt; schiff1 . name &lt;&lt; &quot; wurde getroffen! | Asteroid: &quot; &lt;&lt; asteroid &lt;&lt; &quot; - Leben: &quot; &lt;&lt; schiff1 . leben &lt;&lt; endl;
			}
		}
		if (schiff1 . leben &gt; 0) {
			if (! (rand () % 3)) {
				schiff2 . treffer (asteroid);
				cout &lt;&lt; &quot;      &quot; &lt;&lt; schiff2 . name &lt;&lt; &quot; wurde getroffen! | Asteroid: &quot; &lt;&lt; asteroid &lt;&lt; &quot; - Leben: &quot; &lt;&lt; schiff2 . leben &lt;&lt; endl;
			}
		}
	runde++;
	}

	cout &lt;&lt; endl
		 &lt;&lt; &quot;Raumschiff &quot; &lt;&lt; schiff1 . name &lt;&lt; &quot; - &quot; &lt;&lt; schiff1 . status () &lt;&lt; endl
		 &lt;&lt; &quot;Raumschiff &quot; &lt;&lt; schiff2 . name &lt;&lt; &quot; - &quot; &lt;&lt; schiff2 . status () &lt;&lt; endl &lt;&lt; endl;
}
</code></pre>
<p>Und hier die betroffene Methode:</p>
<pre><code>string status () {
		if (this -&gt; leben &gt; 0)
			return &quot;Leben: &quot; + this -&gt; leben;
		else
			return &quot;Zerstoert&quot;;
	}
</code></pre>
<p>Wie man sieht will ich folgendes zurückgeben:<br />
&quot;Leben: &quot; und der integer Wert der Leben.</p>
<p>Meine Frage: Wie kann ich das nun als kompletter String übergeben? Ich bekomme als Ausgabe immer etwas undefinierbares raus...</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/313174/2-strings-innerhalb-einer-methode-verbinden</link><generator>RSS for Node</generator><lastBuildDate>Sun, 02 Aug 2026 17:50:47 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/313174.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 23 Jan 2013 15:34:35 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to 2 Strings innerhalb einer Methode verbinden on Wed, 23 Jan 2013 15:49:55 GMT]]></title><description><![CDATA[<p>Hallo, ich habe das Problem dass ich es nicht hinbekomme 2 Strings miteinander zu verbinden...</p>
<p>Hier ersteinmal der Code:</p>
<pre><code>#include &lt;ctime&gt;
#include &lt;iostream&gt;
#include &lt;string&gt;
using namespace std;

class Raumschiff_fabrik {
public:
	int geschwindigkeit,
		schild,
		leben;
	string name;

	Raumschiff_fabrik () {
		this -&gt; geschwindigkeit = 5;
		this -&gt; schild = 3;
		this -&gt; leben = 10;
	}

	void setName (string neuer_name) {
		this -&gt; name = neuer_name;
	}

	void treffer (int schaden) {
		int rest_schaden;
		if (this -&gt; schild &lt; schaden) {
			rest_schaden = schaden - this -&gt; schild;
			this -&gt; leben -= rest_schaden;
			if (this -&gt; leben &lt;= 0)
				this -&gt; leben = 0;
		}
	}

	string status () {
		if (this -&gt; leben &gt; 0)
			return &quot;Leben: &quot; + this -&gt; leben;
		else
			return &quot;Zerstoert&quot;;
	}
};

void main () {
	Raumschiff_fabrik schiff1,
					  schiff2;
	schiff1 . setName (&quot;Anubis&quot;);
	schiff2 . setName (&quot;Cherti&quot;);
	int runde = 1;
	int asteroid;

	srand (time (NULL));

	while (runde &lt;= 10) {
		cout &lt;&lt; &quot;    Runde #&quot; &lt;&lt; runde &lt;&lt; endl;
		asteroid = rand () % 10 + 1;
		if (schiff1 . leben &gt; 0) {
			if (! (rand () % 3)) {
				schiff1 . treffer (asteroid);
				cout &lt;&lt; &quot;      &quot; &lt;&lt; schiff1 . name &lt;&lt; &quot; wurde getroffen! | Asteroid: &quot; &lt;&lt; asteroid &lt;&lt; &quot; - Leben: &quot; &lt;&lt; schiff1 . leben &lt;&lt; endl;
			}
		}
		if (schiff1 . leben &gt; 0) {
			if (! (rand () % 3)) {
				schiff2 . treffer (asteroid);
				cout &lt;&lt; &quot;      &quot; &lt;&lt; schiff2 . name &lt;&lt; &quot; wurde getroffen! | Asteroid: &quot; &lt;&lt; asteroid &lt;&lt; &quot; - Leben: &quot; &lt;&lt; schiff2 . leben &lt;&lt; endl;
			}
		}
	runde++;
	}

	cout &lt;&lt; endl
		 &lt;&lt; &quot;Raumschiff &quot; &lt;&lt; schiff1 . name &lt;&lt; &quot; - &quot; &lt;&lt; schiff1 . status () &lt;&lt; endl
		 &lt;&lt; &quot;Raumschiff &quot; &lt;&lt; schiff2 . name &lt;&lt; &quot; - &quot; &lt;&lt; schiff2 . status () &lt;&lt; endl &lt;&lt; endl;
}
</code></pre>
<p>Und hier die betroffene Methode:</p>
<pre><code>string status () {
		if (this -&gt; leben &gt; 0)
			return &quot;Leben: &quot; + this -&gt; leben;
		else
			return &quot;Zerstoert&quot;;
	}
</code></pre>
<p>Wie man sieht will ich folgendes zurückgeben:<br />
&quot;Leben: &quot; und der integer Wert der Leben.</p>
<p>Meine Frage: Wie kann ich das nun als kompletter String übergeben? Ich bekomme als Ausgabe immer etwas undefinierbares raus...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2292668</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2292668</guid><dc:creator><![CDATA[Make-Grafik]]></dc:creator><pubDate>Wed, 23 Jan 2013 15:49:55 GMT</pubDate></item><item><title><![CDATA[Reply to 2 Strings innerhalb einer Methode verbinden on Wed, 23 Jan 2013 15:43:49 GMT]]></title><description><![CDATA[<p>Du kannst dein Stringliteral (&quot;Leben:&quot;) und deinen int-Wert nicht einfach mit '+' zusammmenflanschen. Benutze z.B. <code>std::stringstream</code> .</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2292677</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2292677</guid><dc:creator><![CDATA[_matze]]></dc:creator><pubDate>Wed, 23 Jan 2013 15:43:49 GMT</pubDate></item><item><title><![CDATA[Reply to 2 Strings innerhalb einer Methode verbinden on Wed, 23 Jan 2013 15:44:25 GMT]]></title><description><![CDATA[<p>Das liegt daran, dass this-&gt;leben (Warum schreibst du eigentlich überall this-&gt; davor?) kein String ist, sondern ein int. Also musst du den int erst zu einem String machen. C++11: <a href="http://en.cppreference.com/w/cpp/string/basic_string/to_string" rel="nofollow">to_string</a>. Ohne C++11: Alles in der gewünschten Form in einen Stringstream schreiben, dann den zusammengesetzten String rausziehen.</p>
<p>P.S.:</p>
<pre><code>srand (NULL);
</code></pre>
<p>Ich wette, das hast du falsch abgeschrieben und verstehst zudem nicht, was es überhaupt macht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2292678</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2292678</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Wed, 23 Jan 2013 15:44:25 GMT</pubDate></item><item><title><![CDATA[Reply to 2 Strings innerhalb einer Methode verbinden on Wed, 23 Jan 2013 16:03:52 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/16702">@_matze</a>:</p>
<blockquote>
<p>[...] int-Wert nicht einfach mit '+' zusammmenflanschen. [...]</p>
</blockquote>
<p>man kann es ja mal versuchen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      alt="🤡"
    /></p>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/19375">@SeppJ</a>:</p>
<blockquote>
<p>[...] (Warum schreibst du eigentlich überall this-&gt; davor?) [...]</p>
</blockquote>
<p>Wieso? kann man das Schlüsselwort &quot;this&quot; auch weglassen? Wenn ja warum :o? (Sorry, bin die Programmiersprache erst am studieren :P)</p>
<blockquote>
<p>P.S.:<br />
C++:<br />
srand (NULL);<br />
Ich wette, das hast du falsch abgeschrieben und verstehst zudem nicht, was es überhaupt macht.</p>
</blockquote>
<p>Da muss ich dir leider sagen das du die Wette verloren hast ^^</p>
<blockquote>
<p>&gt; Ich weiß sehr wohl was dies macht. Setzt den Startwert für den Algorithmus der funktion rand(). Allerdings habe ich vergessen die ctime einzubinden und die funktion time() zu verwenden...</p>
</blockquote>
<p>Das ganze sollte so aussehen:<br />
srand(time(NULL));</p>
<p>&lt;:</p>
<p>Okey, dann versuch ich es mal und danke für die Antwort ^^<br />
(Man, ist das alles so ungewohnt und neu für mich <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      alt="🤡"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2292691</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2292691</guid><dc:creator><![CDATA[Make-Grafik]]></dc:creator><pubDate>Wed, 23 Jan 2013 16:03:52 GMT</pubDate></item><item><title><![CDATA[Reply to 2 Strings innerhalb einer Methode verbinden on Wed, 23 Jan 2013 16:35:15 GMT]]></title><description><![CDATA[<p>Make-Grafik schrieb:</p>
<blockquote>
<p>Wieso? kann man das Schlüsselwort &quot;this&quot; auch weglassen? Wenn ja warum :o? (Sorry, bin die Programmiersprache erst am studieren :P)</p>
</blockquote>
<p>Na, mit this beziehst du dich ja auf DEIN Objekt. Wenn du dich aber bereits in DEINEM Objekt befindest, wozu dann noch this? Verstehst du? <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/2292704</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2292704</guid><dc:creator><![CDATA[out]]></dc:creator><pubDate>Wed, 23 Jan 2013 16:35:15 GMT</pubDate></item><item><title><![CDATA[Reply to 2 Strings innerhalb einer Methode verbinden on Wed, 23 Jan 2013 16:46:55 GMT]]></title><description><![CDATA[<p>In anderen Worten, du brauchst <code>this</code> nur, wenn du dich explizit auf das aktuelle Objekt beziehst. Zum Beispiel wenn du einen Zeiger auf das aktuelle Objekt benötigst. Oder um Namenskonflikten mit lokalen Variablen und Parametern vorzubeugen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2292706</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2292706</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Wed, 23 Jan 2013 16:46:55 GMT</pubDate></item><item><title><![CDATA[Reply to 2 Strings innerhalb einer Methode verbinden on Thu, 24 Jan 2013 06:57:10 GMT]]></title><description><![CDATA[<p>Ich schreib das auch überall hin wo geht. Weil sieht schöner aus und ich sehe schneller woher die Variable kommt.<br />
Aber ist kein technisches Muss, sondern nur Schönheit.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2292853</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2292853</guid><dc:creator><![CDATA[Skym0sh0]]></dc:creator><pubDate>Thu, 24 Jan 2013 06:57:10 GMT</pubDate></item><item><title><![CDATA[Reply to 2 Strings innerhalb einer Methode verbinden on Thu, 12 Jun 2014 11:44:54 GMT]]></title><description><![CDATA[<p>...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2292859</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2292859</guid><dc:creator><![CDATA[Swordfish]]></dc:creator><pubDate>Thu, 12 Jun 2014 11:44:54 GMT</pubDate></item><item><title><![CDATA[Reply to 2 Strings innerhalb einer Methode verbinden on Thu, 24 Jan 2013 08:19:21 GMT]]></title><description><![CDATA[<p>Skym0sh0 schrieb:</p>
<blockquote>
<p>Weil sieht schöner aus und ich sehe schneller woher die Variable kommt.</p>
</blockquote>
<p>Das Problem löst sich mit &quot;m&quot;-Präfixen für Member (nein, das ist keine UN).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2292873</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2292873</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Thu, 24 Jan 2013 08:19:21 GMT</pubDate></item><item><title><![CDATA[Reply to 2 Strings innerhalb einer Methode verbinden on Thu, 24 Jan 2013 08:27:00 GMT]]></title><description><![CDATA[<p>es gibt einige Spezialfälle, wo man den this Zeiger braucht, z.B. muß man beim gcc in Templates this-&gt;member schreiben, um auf Basisklassenmember zuzugreifen</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2292875</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2292875</guid><dc:creator><![CDATA[dd++ 0]]></dc:creator><pubDate>Thu, 24 Jan 2013 08:27:00 GMT</pubDate></item><item><title><![CDATA[Reply to 2 Strings innerhalb einer Methode verbinden on Thu, 24 Jan 2013 08:41:24 GMT]]></title><description><![CDATA[<p>Nexus schrieb:</p>
<blockquote>
<p>Skym0sh0 schrieb:</p>
<blockquote>
<p>Weil sieht schöner aus und ich sehe schneller woher die Variable kommt.</p>
</blockquote>
<p>Das Problem löst sich mit &quot;m&quot;-Präfixen für Member (nein, das ist keine UN).</p>
</blockquote>
<p><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="😉"
    /> Das mache ich zusätzlich auch noch. Nur damit ich auch wirklich sicher gehe <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
<p>Nein, mal ohne Spass. Ich benutzte sowohl this wo immer es geht, als auch eine ordentliche Benennung meiner Variablen:</p>
<pre><code>struct Foo
{
    int myInt;
    float myFloat;
};

class Bar
{
    int m_int;
    Foo m_foo;

public:
    float getDing() const
    {
        return this-&gt;m_foo.myFloat;
    }
};
</code></pre>
<p>Hab ich mir so angewöhnt und finde ich schön und angenehm.<br />
Nachteile gibt es so keine, denn ich halte mich an diese Konvention und Speicherverbrauch ist heutzutage kein Argument mehr.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2292876</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2292876</guid><dc:creator><![CDATA[Skym0sh0]]></dc:creator><pubDate>Thu, 24 Jan 2013 08:41:24 GMT</pubDate></item><item><title><![CDATA[Reply to 2 Strings innerhalb einer Methode verbinden on Thu, 24 Jan 2013 08:53:30 GMT]]></title><description><![CDATA[<p>Skym0sh0 schrieb:</p>
<blockquote>
<p>Nachteile gibt es so keine</p>
</blockquote>
<p>Doch, Redundanz und schlechtere Lesbarkeit. Ein m-Präfix reicht, um eine Variable als Member zu identifizieren.</p>
<p>Und mischen von &quot;m&quot; und &quot;my&quot; ist ordentlich, oder wie?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2292882</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2292882</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Thu, 24 Jan 2013 08:53:30 GMT</pubDate></item><item><title><![CDATA[Reply to 2 Strings innerhalb einer Methode verbinden on Thu, 24 Jan 2013 09:10:31 GMT]]></title><description><![CDATA[<p>Genauso wie structs und classen.<br />
myXxx ist in structs und m_xXx ist in classen.</p>
<p>Ich finds gut lesbar. Und da alle Member gleich benannt sind (halt am Anfang) muss ich nicht die gesamte Autovervollständigungsliste durchscrollen um meine Ziel zu finden.</p>
<p>Wie sagt, alles subjektive Empfindungen</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2292892</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2292892</guid><dc:creator><![CDATA[Skym0sh0]]></dc:creator><pubDate>Thu, 24 Jan 2013 09:10:31 GMT</pubDate></item></channel></rss>