<?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[Funktionen als Parameter und Rückgabewerte]]></title><description><![CDATA[<p>Es geht um folgendes:<br />
Ich möchte eine Funktion randDouble(int min, int max) schreiben, die eine Funktion (int -&gt; double) zurückgibt.</p>
<p>Ich möchte eine zufällige Matrix erzeugen mit:</p>
<pre><code class="language-csharp">Matrix &lt;double&gt; mat = Matrix &lt;double&gt;(10,10, randDouble(-1,1));
</code></pre>
<p>Der Konstruktor sieht wie folgt aus:</p>
<pre><code class="language-csharp">template&lt;class T&gt;
Matrix&lt;T&gt;::Matrix(int dim1, int dim2, T (*rnd)(int)) {
	dim1_ = dim1;
	dim2_ = dim2;
	entries_ = new T*[dim1_];
	for (int i = 0; i &lt; dim1_; i++)
		entries_[i] = new T[dim2_];
	for (int i = 0; i &lt; dim1_; i++) {
		for (int j = 0; j &lt; dim2_; j++) {
			entries_[i][j] = rnd(rand());
		}
	}
}
</code></pre>
<p>Ich weiß nicht, ob sowas überhaupt mit C++ geht. Mit Haskell würde ich einfach eine Funktion f :: Int -&gt; Int -&gt; Int -&gt; Float schreiben und nur 2 Parameter beim Aufruf angeben. Aber bei C++ hab ich keine Ahnung, wie die Implementierung von</p>
<pre><code class="language-csharp">double (*randDouble(int min, int max))(int)
</code></pre>
<p>aussehen muss.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/296943/funktionen-als-parameter-und-rückgabewerte</link><generator>RSS for Node</generator><lastBuildDate>Fri, 14 Aug 2026 16:15:52 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/296943.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 15 Dec 2011 17:37:12 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Funktionen als Parameter und Rückgabewerte on Thu, 15 Dec 2011 17:37:12 GMT]]></title><description><![CDATA[<p>Es geht um folgendes:<br />
Ich möchte eine Funktion randDouble(int min, int max) schreiben, die eine Funktion (int -&gt; double) zurückgibt.</p>
<p>Ich möchte eine zufällige Matrix erzeugen mit:</p>
<pre><code class="language-csharp">Matrix &lt;double&gt; mat = Matrix &lt;double&gt;(10,10, randDouble(-1,1));
</code></pre>
<p>Der Konstruktor sieht wie folgt aus:</p>
<pre><code class="language-csharp">template&lt;class T&gt;
Matrix&lt;T&gt;::Matrix(int dim1, int dim2, T (*rnd)(int)) {
	dim1_ = dim1;
	dim2_ = dim2;
	entries_ = new T*[dim1_];
	for (int i = 0; i &lt; dim1_; i++)
		entries_[i] = new T[dim2_];
	for (int i = 0; i &lt; dim1_; i++) {
		for (int j = 0; j &lt; dim2_; j++) {
			entries_[i][j] = rnd(rand());
		}
	}
}
</code></pre>
<p>Ich weiß nicht, ob sowas überhaupt mit C++ geht. Mit Haskell würde ich einfach eine Funktion f :: Int -&gt; Int -&gt; Int -&gt; Float schreiben und nur 2 Parameter beim Aufruf angeben. Aber bei C++ hab ich keine Ahnung, wie die Implementierung von</p>
<pre><code class="language-csharp">double (*randDouble(int min, int max))(int)
</code></pre>
<p>aussehen muss.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2157388</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2157388</guid><dc:creator><![CDATA[Ramanujan]]></dc:creator><pubDate>Thu, 15 Dec 2011 17:37:12 GMT</pubDate></item><item><title><![CDATA[Reply to Funktionen als Parameter und Rückgabewerte on Thu, 15 Dec 2011 17:41:46 GMT]]></title><description><![CDATA[<p>Kleine Ergänzung:</p>
<p>Es macht mehr Sinn, wenn die Parameter vom Typ double sind, aber dadurch ändert sich das Problem nicht:</p>
<pre><code class="language-cpp">double (*randDouble(double min, double max))(int)
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2157392</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2157392</guid><dc:creator><![CDATA[Ramanujan]]></dc:creator><pubDate>Thu, 15 Dec 2011 17:41:46 GMT</pubDate></item><item><title><![CDATA[Reply to Funktionen als Parameter und Rückgabewerte on Thu, 15 Dec 2011 17:43:09 GMT]]></title><description><![CDATA[<p>Man würde hier eher eine Instanz einer Generator-Klasse übergeben. Denn das Problem ist, dass du zusätzlich zum Funktionszeiger ja noch die Parameter brauchst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2157393</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2157393</guid><dc:creator><![CDATA[cooky451]]></dc:creator><pubDate>Thu, 15 Dec 2011 17:43:09 GMT</pubDate></item><item><title><![CDATA[Reply to Funktionen als Parameter und Rückgabewerte on Thu, 15 Dec 2011 17:47:12 GMT]]></title><description><![CDATA[<p>Ja, ok, das würde gehen, thx, hätte ich auch selbst kommen können.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2157396</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2157396</guid><dc:creator><![CDATA[Ramanujan]]></dc:creator><pubDate>Thu, 15 Dec 2011 17:47:12 GMT</pubDate></item><item><title><![CDATA[Reply to Funktionen als Parameter und Rückgabewerte on Thu, 15 Dec 2011 17:49:35 GMT]]></title><description><![CDATA[<p>Mit min und max als ints würde es tatsächlich gehen:</p>
<pre><code class="language-cpp">template &lt;int min, int max&gt; double randDouble(int) { ... }
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2157397</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2157397</guid><dc:creator><![CDATA[curryha]]></dc:creator><pubDate>Thu, 15 Dec 2011 17:49:35 GMT</pubDate></item><item><title><![CDATA[Reply to Funktionen als Parameter und Rückgabewerte on Thu, 15 Dec 2011 20:44:57 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">std::function&lt;double()&gt; make_me_a_generator_in_range(int min, int max)
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2157462</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2157462</guid><dc:creator><![CDATA[314159265358979]]></dc:creator><pubDate>Thu, 15 Dec 2011 20:44:57 GMT</pubDate></item></channel></rss>