<?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[Template für Methoden]]></title><description><![CDATA[<p>Hi! Ich möchte nur einer Methode meiner Klasse ein Template zuweisen, die Klasse selber soll kein Template haben. Zum Beispiel so:</p>
<pre><code class="language-cpp">// Klasse
class Container
{
public:

	template&lt;class T&gt;
	T* Do(char* txt)
	{
		T* t = new T(txt);
		return t;
	}
};

//Benutzen
Container container;
C* c = container.Do&lt;C&gt;(&quot;bla&quot;);
</code></pre>
<p>Weiß jemand wie man soetwas machen kann?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/237017/template-für-methoden</link><generator>RSS for Node</generator><lastBuildDate>Wed, 23 Sep 2026 14:27:20 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/237017.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 23 Mar 2009 11:41:00 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Template für Methoden on Mon, 23 Mar 2009 11:41:00 GMT]]></title><description><![CDATA[<p>Hi! Ich möchte nur einer Methode meiner Klasse ein Template zuweisen, die Klasse selber soll kein Template haben. Zum Beispiel so:</p>
<pre><code class="language-cpp">// Klasse
class Container
{
public:

	template&lt;class T&gt;
	T* Do(char* txt)
	{
		T* t = new T(txt);
		return t;
	}
};

//Benutzen
Container container;
C* c = container.Do&lt;C&gt;(&quot;bla&quot;);
</code></pre>
<p>Weiß jemand wie man soetwas machen kann?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1684737</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1684737</guid><dc:creator><![CDATA[Code-Walker]]></dc:creator><pubDate>Mon, 23 Mar 2009 11:41:00 GMT</pubDate></item><item><title><![CDATA[Reply to Template für Methoden on Mon, 23 Mar 2009 11:46:02 GMT]]></title><description><![CDATA[<p>Genau so, wie Du es da machst. Das setzt aber voraus, dass T mit char* konstruierbar ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1684741</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1684741</guid><dc:creator><![CDATA[Tachyon]]></dc:creator><pubDate>Mon, 23 Mar 2009 11:46:02 GMT</pubDate></item><item><title><![CDATA[Reply to Template für Methoden on Mon, 23 Mar 2009 11:56:38 GMT]]></title><description><![CDATA[<p>Okay, hät jetzt nicht gedacht das mein Pseudo-Code Funktioniert!</p>
<p>Danke <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1684752</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1684752</guid><dc:creator><![CDATA[Code-Walker]]></dc:creator><pubDate>Mon, 23 Mar 2009 11:56:38 GMT</pubDate></item><item><title><![CDATA[Reply to Template für Methoden on Wed, 25 Mar 2009 02:00:37 GMT]]></title><description><![CDATA[<p>Wie kann ich denn in meiner Funktion herausfinden von welchem Typ der Template ist?</p>
<p>z.B:</p>
<pre><code class="language-cpp">// Klasse
class Container
{
public:

    template&lt;class T&gt;
    T* Do(char* txt)
    {
        if(T == float)
        {
             T* t = new T(txt);
             return t;
        }
        else
        {
            return 0;
        }
    }
};
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1685518</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1685518</guid><dc:creator><![CDATA[Code-Walker]]></dc:creator><pubDate>Wed, 25 Mar 2009 02:00:37 GMT</pubDate></item><item><title><![CDATA[Reply to Template für Methoden on Wed, 25 Mar 2009 03:03:45 GMT]]></title><description><![CDATA[<p><code>typeid(T) == typeid(float)</code></p>
<p>bb</p>
<p>edit:<br />
wozu brauchst du das eigtl?<br />
spezialisierung wäre aber wahrscheinlich das, was da eleganter wäre ^^<br />
außerdem sollte nen Container erstens keine so komische Fkt Do haben und zweitens doch mit jedem typen gleich funktionieren!?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1685520</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1685520</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Wed, 25 Mar 2009 03:03:45 GMT</pubDate></item><item><title><![CDATA[Reply to Template für Methoden on Thu, 26 Mar 2009 13:28:05 GMT]]></title><description><![CDATA[<p>Nunja, es kommt bei mir ab und zu vor das ich mal ne sonderausnahme machen muss, wenn T eine bestimmte Klasse ist die ein wenig anders funktioniert. Im moment schreibe ich an einem 3D Framework, und die Modelle, Animationen und Texturen die geladen werden sollen beim laden über die Content Klasse noch im Content gespeichert werden. Wenn ich dann zum Beispiel den Content lösche, sollen auch gleich alle geladenen Objekte vom Speicher entfernt werden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1686332</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1686332</guid><dc:creator><![CDATA[Code-Walker]]></dc:creator><pubDate>Thu, 26 Mar 2009 13:28:05 GMT</pubDate></item><item><title><![CDATA[Reply to Template für Methoden on Thu, 26 Mar 2009 14:04:15 GMT]]></title><description><![CDATA[<p>Code-Walker schrieb:</p>
<blockquote>
<p>Nunja, es kommt bei mir ab und zu vor das ich mal ne sonderausnahme machen muss, wenn T eine bestimmte Klasse ist die ein wenig anders funktioniert.</p>
</blockquote>
<p>idR ist es am sinnvollsten hier die jeweilige funktionalität auszulagern:</p>
<pre><code class="language-cpp">template&lt;typename T&gt;
void foo(T&amp; t) {} //allgemein

void foo(Special&amp; s) {} //spezielles verhalten

template&lt;typename T&gt;
class Foo {
//...

  void doit() {
    T obj;
    foo(obj); //allgemein oder speziell
  }
};
</code></pre>
<p>meistens kann man das aber wegdesignen.</p>
<blockquote>
<p>Im moment schreibe ich an einem 3D Framework, und die Modelle, Animationen und Texturen die geladen werden sollen beim laden über die Content Klasse noch im Content gespeichert werden. Wenn ich dann zum Beispiel den Content lösche, sollen auch gleich alle geladenen Objekte vom Speicher entfernt werden.</p>
</blockquote>
<p>das könnte so aussehen dass die klasse Content selber wenn sie zerstört wird alle referenzen auflöst.</p>
<p>prinzipiell kann man in fast jeder situation eine generalisierung herausbekommen die sinn macht. spezialisierungen sollten wirklich nur eine seltene ausnahme sein.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1686355</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1686355</guid><dc:creator><![CDATA[Shade Of Mine]]></dc:creator><pubDate>Thu, 26 Mar 2009 14:04:15 GMT</pubDate></item></channel></rss>