<?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[Funktionspointer für Konstruktor]]></title><description><![CDATA[<p>Servus,</p>
<p>ich würde gerne folgendes machen. Eine Klasse soll eine Mehtode implementieren, in der ich ein Objekt mit den Standardkonstruktor oder mit einem x-beliebigen mit x-Parametern aufrufen kann. Mein Ansatz:</p>
<pre><code class="language-cpp">// in einer Klasse
template&lt;class X&gt;
X* newObject(X* (*constructor) () = null)
{
    X* obj = this-&gt;currentBlock.getRaw&lt;X &gt; (); // roher Speicher aus einem Block

    if (constructor == null)
        return new (obj) X();
    else
        return new (obj) constructor;
};
</code></pre>
<p>Kann ich das mit einem Template lösen, ala</p>
<pre><code class="language-cpp">template&lt;class X, ??? LangerNamezurUbersicht&gt;
X* newObject(X* (*constructor) (LangerNamezurUbersicht) = null)
{
</code></pre>
<p>Oder bin ich da auf dem falschen Dampfer? Wahrscheinlich ist es wieder eine Kleinigkeit und ich währe froh, wenn jemand mir das mitteilen könnte <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>Gruß<br />
Thomas</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/243226/funktionspointer-für-konstruktor</link><generator>RSS for Node</generator><lastBuildDate>Sun, 20 Sep 2026 04:48:33 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/243226.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 14 Jun 2009 12:28:05 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Funktionspointer für Konstruktor on Sun, 14 Jun 2009 12:28:05 GMT]]></title><description><![CDATA[<p>Servus,</p>
<p>ich würde gerne folgendes machen. Eine Klasse soll eine Mehtode implementieren, in der ich ein Objekt mit den Standardkonstruktor oder mit einem x-beliebigen mit x-Parametern aufrufen kann. Mein Ansatz:</p>
<pre><code class="language-cpp">// in einer Klasse
template&lt;class X&gt;
X* newObject(X* (*constructor) () = null)
{
    X* obj = this-&gt;currentBlock.getRaw&lt;X &gt; (); // roher Speicher aus einem Block

    if (constructor == null)
        return new (obj) X();
    else
        return new (obj) constructor;
};
</code></pre>
<p>Kann ich das mit einem Template lösen, ala</p>
<pre><code class="language-cpp">template&lt;class X, ??? LangerNamezurUbersicht&gt;
X* newObject(X* (*constructor) (LangerNamezurUbersicht) = null)
{
</code></pre>
<p>Oder bin ich da auf dem falschen Dampfer? Wahrscheinlich ist es wieder eine Kleinigkeit und ich währe froh, wenn jemand mir das mitteilen könnte <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>Gruß<br />
Thomas</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1726354</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1726354</guid><dc:creator><![CDATA[Siassei]]></dc:creator><pubDate>Sun, 14 Jun 2009 12:28:05 GMT</pubDate></item><item><title><![CDATA[Reply to Funktionspointer für Konstruktor on Sun, 14 Jun 2009 13:03:11 GMT]]></title><description><![CDATA[<p>Das wäre doch etwas für Policy basiertes Design:</p>
<pre><code class="language-cpp">struct my_creator
{
	template &lt;class T&gt;
	static T* create ()
	{
		//
		return new T;
	}
};

struct your_creator
{
	template &lt;class T&gt;
	static T* create ()
	{
		//
		return new T;
	}
};

class foo
{
public:
	template &lt;class T, class creator&gt;
	T* create ()
	{
		return creator::create&lt;T&gt;();
	}
};

int main ()
{
	foo f;
	f.create&lt;int,my_creator&gt; ();
	f.create&lt;int,your_creator&gt; ();
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1726370</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1726370</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Sun, 14 Jun 2009 13:03:11 GMT</pubDate></item><item><title><![CDATA[Reply to Funktionspointer für Konstruktor on Sun, 14 Jun 2009 13:16:51 GMT]]></title><description><![CDATA[<p>Danke, manchmal sehe ich den Wald vor lauter Bäume nicht mehr <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/1726381</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1726381</guid><dc:creator><![CDATA[Siassei]]></dc:creator><pubDate>Sun, 14 Jun 2009 13:16:51 GMT</pubDate></item><item><title><![CDATA[Reply to Funktionspointer für Konstruktor on Sun, 14 Jun 2009 13:19:42 GMT]]></title><description><![CDATA[<p>Eine andere Möglichkeit wäre es mit Funktionsobjekten zu arbeiten, wie es die Standardbibliothek ebenfalls häufig tut.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1726384</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1726384</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Sun, 14 Jun 2009 13:19:42 GMT</pubDate></item><item><title><![CDATA[Reply to Funktionspointer für Konstruktor on Sun, 14 Jun 2009 13:51:20 GMT]]></title><description><![CDATA[<p>drakon schrieb:</p>
<blockquote>
<p>Eine andere Möglichkeit wäre es mit Funktionsobjekten zu arbeiten, wie es die Standardbibliothek ebenfalls häufig tut.</p>
</blockquote>
<p>Was ich nun auch umgesetzt habe. Statische Strukturen schränken das Ganze stark ein <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/1726408</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1726408</guid><dc:creator><![CDATA[Siassei]]></dc:creator><pubDate>Sun, 14 Jun 2009 13:51:20 GMT</pubDate></item><item><title><![CDATA[Reply to Funktionspointer für Konstruktor on Sun, 14 Jun 2009 13:52:51 GMT]]></title><description><![CDATA[<p>Siassei schrieb:</p>
<blockquote>
<p>drakon schrieb:</p>
<blockquote>
<p>Eine andere Möglichkeit wäre es mit Funktionsobjekten zu arbeiten, wie es die Standardbibliothek ebenfalls häufig tut.</p>
</blockquote>
<p>Was ich nun auch umgesetzt habe. Statische Strukturen schränken das Ganze stark ein <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>
</blockquote>
<p>Ist für Parameter sicher sinnvoller, ja.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1726410</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1726410</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Sun, 14 Jun 2009 13:52:51 GMT</pubDate></item></channel></rss>