<?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[swap-Methode und Einsteiger-Fragen]]></title><description><![CDATA[<p>Hallo allerseits,</p>
<p>bin neu hier und habe gleich mal ein paar simple Fragen. Habe zwar schon mal ein bißchen was mit C++ gemacht, will aber jetzt mir die Grundlagen nochmal genauer anschauen.</p>
<pre><code class="language-cpp">extern &quot;C&quot; void c_swap(int *a, int *b){
	// doesn't work
	int *c=a; a=b; b=c;
}

template&lt; class T &gt; void t_swap(T&amp; a, T&amp; b) { 
	T c=a; a=b; b=c; 
}

int main(){
	// Initialisierung
	int num1 = 5;
	int num2 = 10;

	cout &lt;&lt; &quot;\nBefore:\nnum1: &quot; &lt;&lt; num1 &lt;&lt; &quot;\nnum2: &quot; &lt;&lt; num2;

	//t_swap(num1,num2);
	// also possible / explicit
	//t_swap&lt;int&gt;(num1,num2);

	//C-Style
	//cout &lt;&lt; &quot;\n&amp;num1: &quot; &lt;&lt; &amp;num1 &lt;&lt; &quot;\n&amp;num2: &quot; &lt;&lt; &amp;num2;
	//c_swap(&amp;num1,&amp;num2);
	//cout &lt;&lt; &quot;\n&amp;num1: &quot; &lt;&lt; &amp;num1 &lt;&lt; &quot;\n&amp;num2: &quot; &lt;&lt; &amp;num2;

	//print result
	cout &lt;&lt; &quot;\n\nAfter:\nnum1: &quot; &lt;&lt; num1 &lt;&lt; &quot;\nnum2: &quot; &lt;&lt; num2;
	int nothing; cin&gt;&gt; nothing;
}
</code></pre>
<p>Wieso funktioniert die Funktion c_swap nicht?<br />
Was bedeutet extern 'C' genau?<br />
Kann man die t_swap Methode auch mit Pointer schreiben und macht das Sinn?<br />
Wie bringe ich noch einmal Visual C++ / Windows dazu mir am Schluss die Meldung auszugeben &quot;Drücke beliebige Taste&quot; oder anders gefragt wie schreibe ich die letzte Zeile besser?</p>
<p>Danke und Grüße</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/167787/swap-methode-und-einsteiger-fragen</link><generator>RSS for Node</generator><lastBuildDate>Wed, 16 Sep 2026 03:11:56 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/167787.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 14 Dec 2006 21:11:38 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to swap-Methode und Einsteiger-Fragen on Thu, 14 Dec 2006 21:12:32 GMT]]></title><description><![CDATA[<p>Hallo allerseits,</p>
<p>bin neu hier und habe gleich mal ein paar simple Fragen. Habe zwar schon mal ein bißchen was mit C++ gemacht, will aber jetzt mir die Grundlagen nochmal genauer anschauen.</p>
<pre><code class="language-cpp">extern &quot;C&quot; void c_swap(int *a, int *b){
	// doesn't work
	int *c=a; a=b; b=c;
}

template&lt; class T &gt; void t_swap(T&amp; a, T&amp; b) { 
	T c=a; a=b; b=c; 
}

int main(){
	// Initialisierung
	int num1 = 5;
	int num2 = 10;

	cout &lt;&lt; &quot;\nBefore:\nnum1: &quot; &lt;&lt; num1 &lt;&lt; &quot;\nnum2: &quot; &lt;&lt; num2;

	//t_swap(num1,num2);
	// also possible / explicit
	//t_swap&lt;int&gt;(num1,num2);

	//C-Style
	//cout &lt;&lt; &quot;\n&amp;num1: &quot; &lt;&lt; &amp;num1 &lt;&lt; &quot;\n&amp;num2: &quot; &lt;&lt; &amp;num2;
	//c_swap(&amp;num1,&amp;num2);
	//cout &lt;&lt; &quot;\n&amp;num1: &quot; &lt;&lt; &amp;num1 &lt;&lt; &quot;\n&amp;num2: &quot; &lt;&lt; &amp;num2;

	//print result
	cout &lt;&lt; &quot;\n\nAfter:\nnum1: &quot; &lt;&lt; num1 &lt;&lt; &quot;\nnum2: &quot; &lt;&lt; num2;
	int nothing; cin&gt;&gt; nothing;
}
</code></pre>
<p>Wieso funktioniert die Funktion c_swap nicht?<br />
Was bedeutet extern 'C' genau?<br />
Kann man die t_swap Methode auch mit Pointer schreiben und macht das Sinn?<br />
Wie bringe ich noch einmal Visual C++ / Windows dazu mir am Schluss die Meldung auszugeben &quot;Drücke beliebige Taste&quot; oder anders gefragt wie schreibe ich die letzte Zeile besser?</p>
<p>Danke und Grüße</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1192070</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1192070</guid><dc:creator><![CDATA[yabba]]></dc:creator><pubDate>Thu, 14 Dec 2006 21:12:32 GMT</pubDate></item><item><title><![CDATA[Reply to swap-Methode und Einsteiger-Fragen on Fri, 15 Dec 2006 07:27:03 GMT]]></title><description><![CDATA[<p>yabba schrieb:</p>
<blockquote>
<p>Wieso funktioniert die Funktion c_swap nicht?</p>
</blockquote>
<p>Parameter werden per Kopie übergeben - und du tauschst nur die lokalen Pointer aus. Richtig müsste die Funktion so aussehen:</p>
<pre><code class="language-cpp">void c_swap(int*a,int*b)
{
  int c=*a;*a=*b;*b=c;
}
</code></pre>
<blockquote>
<p>Was bedeutet extern 'C' genau?</p>
</blockquote>
<p>Das gibt an, daß die Funktion nach C-Regeln definiert ist (keine Überladungen, keine Templates, etc.) und möglicherweise auch in C Programmen genutzt werden sollte.</p>
<blockquote>
<p>Kann man die t_swap Methode auch mit Pointer schreiben und macht das Sinn?</p>
</blockquote>
<p>Man kann (sieht dann ähnlich aus wie oben, nur daß überall 'int' durch 'T' ersetzt wird), aber es macht wenig Sinn. Schließlich ist der Umgang mit C++ Referenzen einfacher als mit C Pointern (das war auch der Grund, warum du dich bei der c_swap() in die Nesseln gesetzt hast ;)).</p>
<blockquote>
<p>Wie bringe ich noch einmal Visual C++ / Windows dazu mir am Schluss die Meldung auszugeben &quot;Drücke beliebige Taste&quot; oder anders gefragt wie schreibe ich die letzte Zeile besser?</p>
</blockquote>
<p>In der Konsolen-FAQ gibt es einen Beitrag zum Thema &quot;automatisches Schließen verhindern&quot;.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1192174</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1192174</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Fri, 15 Dec 2006 07:27:03 GMT</pubDate></item></channel></rss>