<?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[Verständnisfrage zum Thema Funktionsüberladung]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich bin gerade beim Thema Funktionsüberladung und habe da mal ein wenig rumgespielt.</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
using namespace std;

int maximum (int x, int y, int z)
{
	int maximumValue = x;

	if (y &gt; maximumValue)
	{
		maximumValue= y;
	}

	if (z &gt; maximumValue)
	{
		maximumValue=z;
	}

	return maximumValue;
}

double maximum (double x, double y, double z)
{
	double maximumValue = x;

	if (y &gt; maximumValue)
	{
		maximumValue= y;
	}

	if (z &gt; maximumValue)
	{
		maximumValue=z;
	}

	return maximumValue;
}

void displayMessage(a, b, c)
{
	int maximumTest = maximum (a, b, c);
	cout &lt;&lt; &quot;Maximum: &quot; &lt;&lt; maximumTest &lt;&lt; endl;
}

int main()
{
	displayMessage(1, 2, 3);
	displayMessage(5.2, 6.3, 7.4);

	system(&quot;PAUSE&quot;);
	return 0;
}
</code></pre>
<p>Der oben genannte Quelltext funktioniert natürlich nicht, weil a,b,c nicht deklariert sind, was zu meiner Frage führt:</p>
<p>Sehe ich es richtig, dass ich eine Funktionsüberladung niemals mit den Parametern einer anderen Funktion aufrufen kann, weil ich eben diese Parameter vorher mit Typ deklarieren muss und ich somit eine überladene funktion, die sich nur in ihren Typen unterscheidet niemals unterschiedlich aufrufen kann?</p>
<p>würde ich in der main die funktion maximum einmal mit maximum(1,2,3) und einmal mit maximum(2.3, 3.4, 4.5) aufrufen würde ja jeweils die jeweilige funktion aufgerufen.</p>
<p>Oder gibt es einen Weg die Parameter einer anderen Funktion typenlos zu übergeben?</p>
<p>*hüstel* Ich kanns nicht besser beschreiben, vielleicht klingt die Frage auch doof, es geht hierbei eher um mein Verständnis.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/203972/verständnisfrage-zum-thema-funktionsüberladung</link><generator>RSS for Node</generator><lastBuildDate>Thu, 08 Oct 2026 06:20:08 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/203972.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 28 Jan 2008 18:10:24 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Verständnisfrage zum Thema Funktionsüberladung on Mon, 28 Jan 2008 18:10:24 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich bin gerade beim Thema Funktionsüberladung und habe da mal ein wenig rumgespielt.</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
using namespace std;

int maximum (int x, int y, int z)
{
	int maximumValue = x;

	if (y &gt; maximumValue)
	{
		maximumValue= y;
	}

	if (z &gt; maximumValue)
	{
		maximumValue=z;
	}

	return maximumValue;
}

double maximum (double x, double y, double z)
{
	double maximumValue = x;

	if (y &gt; maximumValue)
	{
		maximumValue= y;
	}

	if (z &gt; maximumValue)
	{
		maximumValue=z;
	}

	return maximumValue;
}

void displayMessage(a, b, c)
{
	int maximumTest = maximum (a, b, c);
	cout &lt;&lt; &quot;Maximum: &quot; &lt;&lt; maximumTest &lt;&lt; endl;
}

int main()
{
	displayMessage(1, 2, 3);
	displayMessage(5.2, 6.3, 7.4);

	system(&quot;PAUSE&quot;);
	return 0;
}
</code></pre>
<p>Der oben genannte Quelltext funktioniert natürlich nicht, weil a,b,c nicht deklariert sind, was zu meiner Frage führt:</p>
<p>Sehe ich es richtig, dass ich eine Funktionsüberladung niemals mit den Parametern einer anderen Funktion aufrufen kann, weil ich eben diese Parameter vorher mit Typ deklarieren muss und ich somit eine überladene funktion, die sich nur in ihren Typen unterscheidet niemals unterschiedlich aufrufen kann?</p>
<p>würde ich in der main die funktion maximum einmal mit maximum(1,2,3) und einmal mit maximum(2.3, 3.4, 4.5) aufrufen würde ja jeweils die jeweilige funktion aufgerufen.</p>
<p>Oder gibt es einen Weg die Parameter einer anderen Funktion typenlos zu übergeben?</p>
<p>*hüstel* Ich kanns nicht besser beschreiben, vielleicht klingt die Frage auch doof, es geht hierbei eher um mein Verständnis.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1445239</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1445239</guid><dc:creator><![CDATA[ThaRealMatix]]></dc:creator><pubDate>Mon, 28 Jan 2008 18:10:24 GMT</pubDate></item><item><title><![CDATA[Reply to Verständnisfrage zum Thema Funktionsüberladung on Mon, 28 Jan 2008 18:14:44 GMT]]></title><description><![CDATA[<p>Deine Frage ist ein wenig konfus, aber die Antwort ist auf jeden Fall Templates:</p>
<pre><code class="language-cpp">template &lt;typename T&gt;
void displayMessage(T a, T b, T c)
{
    int maximumTest = maximum(a, b, c);
    cout &lt;&lt; &quot;Maximum: &quot; &lt;&lt; maximumTest &lt;&lt; endl;
}
</code></pre>
<p>Da sagst Du C++, dass die Funktion mit beliebigen Typen funktionieren soll (vorausgesetzt, für diese Typen ist eine Funktion 'maximum' definiert, sowie die Ausgabe per <code>operator &lt;&lt;</code> ).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1445242</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1445242</guid><dc:creator><![CDATA[Konrad Rudolph]]></dc:creator><pubDate>Mon, 28 Jan 2008 18:14:44 GMT</pubDate></item><item><title><![CDATA[Reply to Verständnisfrage zum Thema Funktionsüberladung on Mon, 28 Jan 2008 18:17:11 GMT]]></title><description><![CDATA[<p>Übrigens ließe sich auf die Funktion 'maximum' als Template schreiben, und desweiteren entschieden vereinfachen:</p>
<pre><code class="language-cpp">template &lt;typename T&gt;
T maximum(T a, T b, T c) {
    return a &lt; b ? (b &lt; c ? c : b) : (a &lt; c ? c : a);
}
</code></pre>
<p>Das macht dieselben Abfragen, aber in konziserer Form. Optimalerweise kann man auch die bereits existierende Funktion 'std::maximum' verwenden, welche auf Array anwendbar ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1445245</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1445245</guid><dc:creator><![CDATA[Konrad Rudolph]]></dc:creator><pubDate>Mon, 28 Jan 2008 18:17:11 GMT</pubDate></item><item><title><![CDATA[Reply to Verständnisfrage zum Thema Funktionsüberladung on Mon, 28 Jan 2008 18:17:52 GMT]]></title><description><![CDATA[<p>Oder für die beiden Typen auch displayMessage überladen:</p>
<pre><code class="language-cpp">void displayMessage(int a, int b, int c)
{
    cout &lt;&lt; &quot;Maximum: &quot; &lt;&lt; maximum (a, b, c) &lt;&lt; endl;
}

void displayMessage(double a, double b, double c)
{
    cout &lt;&lt; &quot;Maximum: &quot; &lt;&lt; setpricision(2) &lt;&lt; maximum (a, b, c) &lt;&lt; endl;
}
</code></pre>
<p>und schon sollte auch das gehen <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/1445247</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1445247</guid><dc:creator><![CDATA[*D*Evil]]></dc:creator><pubDate>Mon, 28 Jan 2008 18:17:52 GMT</pubDate></item><item><title><![CDATA[Reply to Verständnisfrage zum Thema Funktionsüberladung on Mon, 28 Jan 2008 18:21:51 GMT]]></title><description><![CDATA[<p>Hm okay... danke für den Ausblick, aber ich glaube, das ihr meinen Verdacht bzw Verständnis der Funktionsüberladung zumindest bestätigt habt (wenn ich nunmal von Termplates absehe, die ich noch nicht im Buch hatte <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>Danke</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1445251</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1445251</guid><dc:creator><![CDATA[ThaRealMatix]]></dc:creator><pubDate>Mon, 28 Jan 2008 18:21:51 GMT</pubDate></item></channel></rss>