<?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[[Funktion] String-Parameter]]></title><description><![CDATA[<p>Guten Tag.</p>
<p>Ich versuche schon seit einiger Zeit eine Funktion zu schreiben, wo ich ein String übergebe.</p>
<p>Beispiel:</p>
<pre><code class="language-cpp">#include &lt;conio.h&gt;
#include &lt;iostream&gt;
#include &lt;windows.h&gt;

using namespace std;

void Ausgabe(string *sParameter)
{ cout &lt;&lt; sParameter &lt;&lt; &quot;\n&quot;;}

int main(void)
{
Ausgabe(&quot;Guten Tag!&quot;);
getch();
}
</code></pre>
<p>Doch es klappt einfach nicht.</p>
<p>Könnte mir jemand bitte helfen und ein besseren oder gar richtigen Weg vorschlagen?</p>
<p>Mit freundlichen Grüßen,<br />
Understood.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/271336/funktion-string-parameter</link><generator>RSS for Node</generator><lastBuildDate>Sat, 29 Aug 2026 10:20:26 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/271336.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 26 Jul 2010 17:44:12 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to [Funktion] String-Parameter on Mon, 26 Jul 2010 17:44:12 GMT]]></title><description><![CDATA[<p>Guten Tag.</p>
<p>Ich versuche schon seit einiger Zeit eine Funktion zu schreiben, wo ich ein String übergebe.</p>
<p>Beispiel:</p>
<pre><code class="language-cpp">#include &lt;conio.h&gt;
#include &lt;iostream&gt;
#include &lt;windows.h&gt;

using namespace std;

void Ausgabe(string *sParameter)
{ cout &lt;&lt; sParameter &lt;&lt; &quot;\n&quot;;}

int main(void)
{
Ausgabe(&quot;Guten Tag!&quot;);
getch();
}
</code></pre>
<p>Doch es klappt einfach nicht.</p>
<p>Könnte mir jemand bitte helfen und ein besseren oder gar richtigen Weg vorschlagen?</p>
<p>Mit freundlichen Grüßen,<br />
Understood.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1932189</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1932189</guid><dc:creator><![CDATA[Understood]]></dc:creator><pubDate>Mon, 26 Jul 2010 17:44:12 GMT</pubDate></item><item><title><![CDATA[Reply to [Funktion] String-Parameter on Mon, 26 Jul 2010 17:50:35 GMT]]></title><description><![CDATA[<p>du übergibst einen Zeiger auf einen String.<br />
Mach das einfach so:</p>
<pre><code class="language-cpp">void Ausgabe(string sParameter)
{ cout &lt;&lt; sParameter &lt;&lt; &quot;\n&quot;;}
</code></pre>
<p>Also den String nicht per zeiger sondern einfach so übergeben.<br />
Dann klappt es.</p>
<p>MfG, Jochen</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1932192</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1932192</guid><dc:creator><![CDATA[Jochen S.]]></dc:creator><pubDate>Mon, 26 Jul 2010 17:50:35 GMT</pubDate></item><item><title><![CDATA[Reply to [Funktion] String-Parameter on Mon, 26 Jul 2010 17:52:34 GMT]]></title><description><![CDATA[<p>Oder übergeb am Besten ne Referenz und mach sie const, da du ja nix änderst am den String.</p>
<pre><code class="language-cpp">void Ausgabe(const string&amp; sParameter)
{ cout &lt;&lt; sParameter &lt;&lt; &quot;\n&quot;;}
</code></pre>
<p>Hoffe konnte helfen.</p>
<p>Lg freeG</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1932193</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1932193</guid><dc:creator><![CDATA[fr33g]]></dc:creator><pubDate>Mon, 26 Jul 2010 17:52:34 GMT</pubDate></item><item><title><![CDATA[Reply to [Funktion] String-Parameter on Thu, 29 Jul 2010 20:31:47 GMT]]></title><description><![CDATA[<p>Danke für eure Antworten.<br />
Doch ich habe das Problem folgendermaßen gelöst:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;windows.h&gt;
#include &lt;conio.h&gt;
#include &lt;cstdio&gt;

void _Out(char* strPM)
{
	printf(&quot;%s&quot;,strPM);
}

int main(void)
{
	_Out(&quot;Guten Tag!&quot;);
	getch();
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1933729</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1933729</guid><dc:creator><![CDATA[Understood]]></dc:creator><pubDate>Thu, 29 Jul 2010 20:31:47 GMT</pubDate></item><item><title><![CDATA[Reply to [Funktion] String-Parameter on Thu, 29 Jul 2010 20:34:21 GMT]]></title><description><![CDATA[<p>Naja das ist ja dann wohl eher C als C++ <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>Lg freeG</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1933731</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1933731</guid><dc:creator><![CDATA[fr33g]]></dc:creator><pubDate>Thu, 29 Jul 2010 20:34:21 GMT</pubDate></item><item><title><![CDATA[Reply to [Funktion] String-Parameter on Thu, 29 Jul 2010 20:41:59 GMT]]></title><description><![CDATA[<p>Da ich leider durch meiner unregistrierten Wenigkeit keine Posts editieren kann, muss ich wohl so die nächste Frage stellen:</p>
<p>1. Was bedeutet &quot;new&quot; und &quot;delete&quot;, könntet Ihr mir es bitte in einem nicht zu sehr starkem Hochdeutsch erklären (oder einfach weniger Fachbegriffe nutzen), weil dann kapiere ich so ziemlich garnichts. <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>2. Was bedeutet es, wenn ich eine Klasse erstelle und dann dort eine Funktion reinschreibe, die überhaupt keinen Rückgabetyp hat, also noch nicht mal davorsteht &quot;void&quot; o.Ä. und danach ein ~Funktionsname(...); kommt?</p>
<p>Beispiel in der Klasse:</p>
<pre><code class="language-cpp">Funktions_Name(int sx, int sy, int s_width,int s_heigh);
~Funktions_Name();
</code></pre>
<p>Warum steht dort kein &quot;void&quot; o.Ä.?</p>
<p>Und die Funktion:</p>
<pre><code class="language-cpp">Curveball_Bot::Curveball_Bot(int sx=0, int sy=0, int s_width=GetSystemMetrics(SM_CXSCREEN),
int s_height=GetSystemMetrics(SM_CYSCREEN)) : p_found(false)
{
this-&gt;sy=sy;
this-&gt;sx=sx;
this-&gt;hdcDesktop=GetDC(0);
this-&gt;hdcMemory=CreateCompatibleDC(this-&gt;hdcDesktop);
this-&gt;s_width=s_width;
this-&gt;s_height=s_height;
}
</code></pre>
<p>MfG,<br />
Understood.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1933735</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1933735</guid><dc:creator><![CDATA[Understood]]></dc:creator><pubDate>Thu, 29 Jul 2010 20:41:59 GMT</pubDate></item><item><title><![CDATA[Reply to [Funktion] String-Parameter on Thu, 29 Jul 2010 21:35:02 GMT]]></title><description><![CDATA[<p>Das sind alles Grundlagen.. Am besten solltest du dir ein gutes einsteigerbuch für C++ kaufen dort werden alle solche Fragen geklärt-</p>
<p>Zu 1:<br />
new und delete sind für die dynamische Speicherallokation zuständig. Also du forderst damit speicher für dein Objekt an bzw gibst ihn wieder frei. (im Heap)</p>
<p>Zu 2:<br />
Das erste ist ein Konstruktor. Diese DÜRFEN keinen Rückgabetyp haben. Konstruktoren sind für die initialisierung deiner Objekte zuständig, also dafür sie in einen korrekten Anfangszustand zu versetzen.<br />
Das ~Klassenname() ist dann der Destruktor. Der eben dafür da ist alle überreste deiner Klasse wieder abzubauen.</p>
<p>Beide müssen den EXAKT GLEICHEN NAMEN haben wie deine Klasse-</p>
<p>Aber wie gesagt am besten vo nem gescheiten Buch dir erklären lassen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1933755</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1933755</guid><dc:creator><![CDATA[downtimes]]></dc:creator><pubDate>Thu, 29 Jul 2010 21:35:02 GMT</pubDate></item><item><title><![CDATA[Reply to [Funktion] String-Parameter on Thu, 29 Jul 2010 21:51:03 GMT]]></title><description><![CDATA[<p>Alles geklärt und auch hilfreich.<br />
Könntest Du mir eventuell ein Beispiel mit &quot;new&quot; und/oder &quot;delete&quot; geben?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1933767</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1933767</guid><dc:creator><![CDATA[Understood]]></dc:creator><pubDate>Thu, 29 Jul 2010 21:51:03 GMT</pubDate></item><item><title><![CDATA[Reply to [Funktion] String-Parameter on Thu, 29 Jul 2010 21:58:33 GMT]]></title><description><![CDATA[<p>Understood schrieb:</p>
<blockquote>
<p>Alles geklärt und auch hilfreich.<br />
Könntest Du mir eventuell ein Beispiel mit &quot;new&quot; und/oder &quot;delete&quot; geben?</p>
</blockquote>
<pre><code class="language-cpp">#include &lt;iostream&gt; //wg. cout

int main()
{
    using namespace std;
    int* pI = new int(8); // legt eine int-Variable mit dem Inhalt 8 an.
    cout &lt;&lt; &quot;*pI = &quot; &lt;&lt; *pI &lt;&lt; endl; // Inhalt von *pI ausgeben
    delete pI; // Speicher wieder freigeben
    return 0;
}
</code></pre>
<p>Gruß<br />
Werner</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1933768</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1933768</guid><dc:creator><![CDATA[Werner Salomon]]></dc:creator><pubDate>Thu, 29 Jul 2010 21:58:33 GMT</pubDate></item><item><title><![CDATA[Reply to [Funktion] String-Parameter on Thu, 29 Jul 2010 22:01:04 GMT]]></title><description><![CDATA[<p>Hier mal ein Beispiel zu new und delete:</p>
<pre><code class="language-cpp">class Obj
{
public:
Obj(){cout &lt;&lt; &quot;Objekt erzeugt&quot; &lt;&lt; endl;}
~Obj(){cout &lt;&lt; &quot;Destruktor aufgerufen&quot; &lt;&lt; endl;}
void Method(){/**/}
};

Obj* MyObj = new Obj; // Hier wird Speicher für das Objekt bereitgestellt und der Konstruktor aufgerufen
MyObj-&gt;Method(); // Methode aufrufen
delete MyObj; // Hier wird der Destruktor aufgerufen und der Speicher freigegeben.

//Und so kann man dynamische Arrays erstellen.

int* IntArray = new int[1000]; // Speicher für 1000 int-Werte reservieren
for(int i=0;i&lt;1000;i++)IntArray[i]=i; // Array füllen (Nur so zum Spaß)
delete[] IntArray; // Speicher freigeben.
</code></pre>
<p>Ich hoffe, das ist so verständlich.</p>
<p>MfG, Jochen</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1933771</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1933771</guid><dc:creator><![CDATA[Jochen S.]]></dc:creator><pubDate>Thu, 29 Jul 2010 22:01:04 GMT</pubDate></item><item><title><![CDATA[Reply to [Funktion] String-Parameter on Thu, 29 Jul 2010 22:06:35 GMT]]></title><description><![CDATA[<p>Danke. <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 />
Da habe ich morgen viel vor mir, wenn ich mich an C++ ranschmeiße, jetzt bin ich leider etwas zu müde. <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/1933775</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1933775</guid><dc:creator><![CDATA[Understood]]></dc:creator><pubDate>Thu, 29 Jul 2010 22:06:35 GMT</pubDate></item><item><title><![CDATA[Reply to [Funktion] String-Parameter on Thu, 29 Jul 2010 22:11:39 GMT]]></title><description><![CDATA[<p>Understood schrieb:</p>
<blockquote>
<p>1. Was bedeutet &quot;new&quot; und &quot;delete&quot;, könntet Ihr mir es bitte in einem nicht zu sehr starkem Hochdeutsch erklären (oder einfach weniger Fachbegriffe nutzen), weil dann kapiere ich so ziemlich garnichts. <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>Ich kann leider nur Hochdeutsch, wenn ich versuche Dialekt zu schreiben, geht das schief. Denk dir den folgenden Text einfach mit sächsischer Aussprache:</p>
<p>Angenommen wir haben eine Klasse <code>foo</code> . Dann liefert uns <code>new foo</code> einen Zeiger auf einen foo. Aber nicht bloß irgendeinen Zeiger, sondern an der Stelle wo der Zeiger hinzeigt, ist tatsächlich ein gültiger foo, mit dem man dann ganz normal arbeiten kann. Das klingt ja erstmal nicht so spannend, denn statt</p>
<pre><code class="language-cpp">foo *pointer_auf_foo = new foo;
// ... Mit *pointer_auf_foo arbeiten...
</code></pre>
<p>hätten wir ja auch wie gewohnt</p>
<pre><code class="language-cpp">foo ein_foo;
// ... Mit ein_foo arbeiten...
</code></pre>
<p>schreiben können. Und das wäre auch richtig und daher gebraucht man new in der Regel dazu auch nicht.<br />
Das kann man auch mit Arrays von foo machen:</p>
<pre><code class="language-cpp">foo *array_von_foo = new foo[5];
// entspricht (bis auf Kleinigkeiten):
foo array_von_foo[5];

// ...mit array_von_foo arbeiten...
</code></pre>
<p>Eigentlich immer noch nichts neues. Das lustige an der Sache ist nun, dass Arrays ja immer eine konstante Größe haben müssen, aber bei new braucht dies nicht so zu sein:</p>
<pre><code class="language-cpp">int groesse;
cin &gt;&gt; groesse;
foo *array_von_foo = new foo[groesse]; // Geht!
foo array_von_foo[groesse];  // Compilerfehler! (Geht bei manchen Compilern trotzdem als Zusatzfeature, ist aber nicht Standard)
</code></pre>
<p>Dies ist eine der Hauptanwendungen von new. Doch dies braucht man auch eher selten, da man in C++ ja std::vector hat und dieser eigentlich alle Bedürfnisse die man an dynamische Arrays hat, decken kann. Daher eine Fausregel: new braucht man nur ganz selten. Wenn du als Anfänger glaubst, new zu brauchen, dann glaubst du falsch.<br />
Es gibt noch zwei andere Anwendungsgebiete von new, das erste ist technischer Art und könnte nur mit fachwörtern erklärt werden. Es geht dabei um die Größe von Objekten, new erlaubt einem größere Objekte (vom Speicherverbrauch her) anzulegen als die normalen Variablen:</p>
<pre><code class="language-cpp">long double *grosses_array = new long double[999999999999];  // Wird wahrscheinlich funktionieren (aber Rückgabewert trotzdem prüfen!)
long double grosses_array[999999999999];  // Programm wird in der Regel abstürzen
</code></pre>
<p>Die dritte und letzte Anwendung dreht sich um die Lebensdauer einer Variablen. Manchmal(d.h. ganz selten) hat man sehr spezifische Anforderungen an die Lebensdauer einer Variablen. Aus deinen Fragen schließe ich aber, dass eine Erklärung hier nicht viel nützen Würde, da dir die Grundlagen fehlen, um dies zu verstehen. Du wirst es höchstwahrscheinlich vorerst auch nicht benötigen.</p>
<p>Apropos Lebensdauer: Delete beendet die Lebensdauer eines Objekts, welches vorher mit new angelegt wurde, dass ist alles. Man sollte höchst genau darauf achten, dass zu jedem new das man macht, ganz genau ein delete ausgeführt wird (oder delete[], wenn man mit new ein Array angelegt hat).</p>
<blockquote>
<p>2. Was bedeutet es, wenn ich eine Klasse erstelle und dann dort eine Funktion reinschreibe, die überhaupt keinen Rückgabetyp hat, also noch nicht mal davorsteht &quot;void&quot; o.Ä. und danach ein ~Funktionsname(...); kommt?</p>
</blockquote>
<p>Das sind Konstruktoren und Destruktoren. Was das ist, kann man im Rahmen dieses Forums nicht erklären. Das Thema ist aber ungeheuer wichtig, ich empfehle dir ein Buch zu lesen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1933777</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1933777</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Thu, 29 Jul 2010 22:11:39 GMT</pubDate></item><item><title><![CDATA[Reply to [Funktion] String-Parameter on Fri, 30 Jul 2010 09:45:56 GMT]]></title><description><![CDATA[<p>Dieses Thema habe ich kapiert. Ich verstehe wie es funktioniert und dies ist auch gut so. <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>Am Montag kriege ich meine Bücher wieder zu Gesicht und dann heißt es: lernen, lernen und lernen. <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>Mit freundlichen Grüßen,<br />
Understood. <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><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/19375">@SeppJ</a>:<br />
Auch wieder eine Danksagung an Dich. <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>
]]></description><link>https://www.c-plusplus.net/forum/post/1933916</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1933916</guid><dc:creator><![CDATA[Understood]]></dc:creator><pubDate>Fri, 30 Jul 2010 09:45:56 GMT</pubDate></item></channel></rss>