<?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-Parameter für Klassen-Funktion]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>wie kann man zu diesem Java-Code einen äquivalenten C++-Code erzeugen?</p>
<pre><code class="language-java">public class Test {

	public static void main(String[] args){
		Test t = new Test();
		t.doSomething(&quot;Hallo&quot;);

	}

	public &lt;T extends Object&gt; T doSomething(T t) {
		return t;
	}
}
</code></pre>
<p>Gruß,<br />
CSpille</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/243307/template-parameter-für-klassen-funktion</link><generator>RSS for Node</generator><lastBuildDate>Sun, 20 Sep 2026 03:54:48 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/243307.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 15 Jun 2009 12:29:24 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Template-Parameter für Klassen-Funktion on Mon, 15 Jun 2009 13:31:36 GMT]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>wie kann man zu diesem Java-Code einen äquivalenten C++-Code erzeugen?</p>
<pre><code class="language-java">public class Test {

	public static void main(String[] args){
		Test t = new Test();
		t.doSomething(&quot;Hallo&quot;);

	}

	public &lt;T extends Object&gt; T doSomething(T t) {
		return t;
	}
}
</code></pre>
<p>Gruß,<br />
CSpille</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1726930</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1726930</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Mon, 15 Jun 2009 13:31:36 GMT</pubDate></item><item><title><![CDATA[Reply to Template-Parameter für Klassen-Funktion on Mon, 15 Jun 2009 12:34:51 GMT]]></title><description><![CDATA[<p>Mal wieder Hausaufgaben? Und dann noch nicht mal Lust, ein wenig Eigeninitiative zu zeigen...?</p>
<p>bb</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1726931</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1726931</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Mon, 15 Jun 2009 12:34:51 GMT</pubDate></item><item><title><![CDATA[Reply to Template-Parameter für Klassen-Funktion on Mon, 15 Jun 2009 12:40:34 GMT]]></title><description><![CDATA[<p>Hey unskilled,</p>
<p>halt einfach die Fresse, wenn du keine konstruktiven Ideen hast!!!</p>
<p>Gruß,<br />
CSpille</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1726935</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1726935</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Mon, 15 Jun 2009 12:40:34 GMT</pubDate></item><item><title><![CDATA[Reply to Template-Parameter für Klassen-Funktion on Mon, 15 Jun 2009 12:43:24 GMT]]></title><description><![CDATA[<p>CSpille schrieb:</p>
<blockquote>
<p>halt einfach die Fresse, wenn du keine konstruktiven Ideen hast!!!</p>
</blockquote>
<p>Ich empfehle dir, dich in deinem Ton etwas zu mässigen. Du bist hier Hilfesuchender. Du sollst Initiative zeigen. Hausaufgaben werden hier nicht gelöst. Das Problem ist extrem trivial, wenn man sich nur ein wenig in Templateprogrammierung auskennt.<br />
Zeig was du versucht hast, wo und wie du gescheitert bist und wir helfen dir gerne weiter. Oder bezahle einen guten Preis und wir erledigen die Arbeit für dich.</p>
<p>Grüssli</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1726937</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1726937</guid><dc:creator><![CDATA[Dravere]]></dc:creator><pubDate>Mon, 15 Jun 2009 12:43:24 GMT</pubDate></item><item><title><![CDATA[Reply to Template-Parameter für Klassen-Funktion on Mon, 15 Jun 2009 12:53:10 GMT]]></title><description><![CDATA[<p>Hallo Dravere,</p>
<p>ich lasse mir solche haltlosen Unterstellungen bezüglich Hausaufgaben nicht bieten.</p>
<p>Ist das Problem wirklich trivial, wenn der Template-Parameter nicht in der Klasse<br />
verankert ist?<br />
Der Template-Code wird ja zur Compilierzeit ausgewertet und wenn ich ne virtual-Funktion<br />
habe (Methode ist nicht final), dann kann man die ja auf jedem dieser Objekttypen ausführen, folglich kann der Compiler ja gar nicht wissen, welche Typen alle<br />
nötig sind.</p>
<p>Gruß,<br />
CSpille</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1726942</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1726942</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Mon, 15 Jun 2009 12:53:10 GMT</pubDate></item><item><title><![CDATA[Reply to Template-Parameter für Klassen-Funktion on Mon, 15 Jun 2009 13:04:20 GMT]]></title><description><![CDATA[<p>CSpille schrieb:</p>
<blockquote>
<p>Hallo zusammen,</p>
<p>wie kann man zu diesem Java-Code einen äquivalenten C++-Code erzeugen?...</p>
</blockquote>
<p>Mich (der ich mich mit java-generics nicht auskenne) würde mal interessieren, wie &quot;äquivalent&quot; eigentlich C++-Templates da überhaupt sein können.<br />
Allein hiermit:</p>
<p><a href="http://de.wikipedia.org/wiki/Generische_Programmierung_in_Java" rel="nofollow">http://de.wikipedia.org/wiki/Generische_Programmierung_in_Java</a> schrieb:</p>
<blockquote>
<p>...Während in C++ über die Schnittstelle der Typparameter parametrisiert wird, wird in Java direkt über den Typ des Typparameters selbst parametrisiert....</p>
</blockquote>
<p>stelle ich mir das schwierig vor.</p>
<p>CSpille schrieb:</p>
<blockquote>
<p>...<br />
ich lasse mir solche haltlosen Unterstellungen bezüglich Hausaufgaben nicht bieten. ...</p>
</blockquote>
<p>Ich würde mir einfach überlegen, wie viel persönliche Eitelkeit in einem anonymen Forum, von dem man Hilfe erwartet und zu einem Thema, zu dem man noch gar nichts beigesteuert hat, angebracht ist.<br />
Da <em>kann</em> man die Latte zwar hoch legen ... muss aber nicht.</p>
<p>Gruß,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1726950</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1726950</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Mon, 15 Jun 2009 13:04:20 GMT</pubDate></item><item><title><![CDATA[Reply to Template-Parameter für Klassen-Funktion on Mon, 15 Jun 2009 13:09:14 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">//public class Test { 
class Test {
//    public static void main(String[] args){ 
public:
	static void main(int argc, char* argv[]) {
//        Test t = new Test(); 
		Test t;
//        t.doSomething(&quot;Hallo&quot;); 
		t.doSomething(&quot;Hallo&quot;);
//    } 
//    private &lt;T extends Object&gt; T doSomething(T t) { 
private:
	template&lt;class T&gt;
	T doSomething(T t) {
//        return t; 
		return t;
//    } 
	}
//}
}
</code></pre>
<p>Gar nicht so schwer, oder?<br />
Welche Klasse?<br />
Gruß<br />
skrm</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1726965</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1726965</guid><dc:creator><![CDATA[skrm]]></dc:creator><pubDate>Mon, 15 Jun 2009 13:09:14 GMT</pubDate></item><item><title><![CDATA[Reply to Template-Parameter für Klassen-Funktion on Mon, 15 Jun 2009 13:14:11 GMT]]></title><description><![CDATA[<p>Edit: Auch noch Startcode</p>
<pre><code class="language-cpp">int main(int argc, char* argv[]) {
Test::main(argc,argv);
return 1;
}
</code></pre>
<p>Es ist in so weit ähnlich, als dass es maßgebnlich von C++ inspiriert ist.<br />
Du hast recht, es ist in Java ein anderes Konzept(mehr oder weniger Typenlöschung aus Kompatipilität), aber eine gewisse Ähnlichkeit lässt sich schon feststellen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1726969</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1726969</guid><dc:creator><![CDATA[skrm]]></dc:creator><pubDate>Mon, 15 Jun 2009 13:14:11 GMT</pubDate></item><item><title><![CDATA[Reply to Template-Parameter für Klassen-Funktion on Mon, 15 Jun 2009 13:17:25 GMT]]></title><description><![CDATA[<p>Hallo Simon2,</p>
<p>ich finde so nen Kommentar von unskilled schon etwas unverschämt, da ich<br />
ihm zweimal versucht habe zu helfen.</p>
<p><a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-198491.html" rel="nofollow">http://www.c-plusplus.net/forum/viewtopic-var-t-is-198491.html</a><br />
<a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-197919.html" rel="nofollow">http://www.c-plusplus.net/forum/viewtopic-var-t-is-197919.html</a></p>
<p>@skrm:</p>
<p>Danke für die Antwort. Ich habe irrtümlich als Modifier private geschrieben,<br />
sollte aber public sein.</p>
<p>Ich bin jetzt gerade zur Arbeit gefahren, aber ich glaube so hatte ich das und sobald du die Methode virtual machst, geht das nicht mehr.<br />
Ich werde das @home nochmal testen. DANKE DIR, skrm</p>
<p>Gruß,<br />
CSpille</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1726971</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1726971</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Mon, 15 Jun 2009 13:17:25 GMT</pubDate></item><item><title><![CDATA[Reply to Template-Parameter für Klassen-Funktion on Mon, 15 Jun 2009 13:59:03 GMT]]></title><description><![CDATA[<p>CSpille schrieb:</p>
<blockquote>
<p>Hallo Simon2,</p>
<p>ich finde so nen Kommentar von unskilled schon etwas unverschämt, da ich<br />
ihm zweimal versucht habe zu helfen.</p>
</blockquote>
<p>lol - das ist 2 Jahre her - wie soll ich mich an so was erinnern?<br />
außerdem war es weder bös noch sonst iwie gemeint - es kam halt einfach mal so rüber - zu mal die frage ja nu wirklich nich so schwer zu beantworten war...</p>
<p>bb</p>
<p>PS:</p>
<pre><code class="language-cpp">/*
public class Test {

    public static void main(String[] args){
        Test t = new Test();
        t.doSomething(&quot;Hallo&quot;);

    }
*/

//Test ist der Projektname, interessiert in C++ nicht
int main(int argc, char* argv[])
{
   Test t;
   t.doSomething(&quot;Hallo&quot;);
}

/*
    public &lt;T extends Object&gt; T doSomething(T t) {
        return t;
    }
}
*/

class Test
{
  public:
    template &lt;typename T&gt;
    T doSomething(T t)
    {
      return t;
    }
};
</code></pre>
<p>ein wenig modifiziert:</p>
<pre><code class="language-cpp">int main(int argc, char* argv[])
{
   Test t;
   t.doSomething(&quot;Hallo&quot;);
}

struct Test
{
  template &lt;typename T&gt;
  T doSomething(const T &amp;t)
  {
    return t;
  }
};
</code></pre>
<p>allerdings ist das nicht sehr sinnvoll - also können wir auch so was machen:</p>
<pre><code class="language-cpp">int main(int argc, char* argv[])
{
   Test::doSomething(&quot;Hallo&quot;);
}

struct Test
{
  template &lt;typename T&gt;
  static T doSomething(const T &amp;t)
  {
    return t;
  }
};
</code></pre>
<p>und jz fällt uns auf, dass wir das struct gar nicht brauchen:<br />
auch main muss nicht so kompliziert aussehen:</p>
<pre><code class="language-cpp">int main()
{
   Test::doSomething(&quot;Hallo&quot;);
}

namespace Test
{
  template &lt;typename T&gt;
  static T doSomething(const T &amp;t)
  {
    return t;
  }
};
</code></pre>
<p>Ansonsten: n1 Post - so erwachsen x)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1727001</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1727001</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Mon, 15 Jun 2009 13:59:03 GMT</pubDate></item><item><title><![CDATA[Reply to Template-Parameter für Klassen-Funktion on Mon, 15 Jun 2009 14:14:47 GMT]]></title><description><![CDATA[<p>Hey unskilled,</p>
<p>*CSpille begräbt Kriegsbeil* <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>
<p>DANKE für deine Mühe, allerdings fehlt in diesem Fall immernoch das im<br />
Beitrag davor angesprochene &quot;virtual&quot;, wonach auch deine Vorschläge (wie ich denke - werde es @home testen) nicht mehr funktionieren.</p>
<p>Gruß,<br />
CSpille</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1727013</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1727013</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Mon, 15 Jun 2009 14:14:47 GMT</pubDate></item><item><title><![CDATA[Reply to Template-Parameter für Klassen-Funktion on Mon, 15 Jun 2009 14:20:53 GMT]]></title><description><![CDATA[<p>Also soll doSomething virtual sein?<br />
Das geht nicht, da templates nicht virtual sein können...</p>
<p>bb</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1727017</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1727017</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Mon, 15 Jun 2009 14:20:53 GMT</pubDate></item><item><title><![CDATA[Reply to Template-Parameter für Klassen-Funktion on Mon, 15 Jun 2009 14:28:41 GMT]]></title><description><![CDATA[<p>Hi unskilled,</p>
<p>doSomething soll virtual sein. Genau das hatte ich befürchtet <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /><br />
Ich hatte mir nur irgendeinen Workaround erhofft.</p>
<p>Gruß,<br />
CSpille</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1727021</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1727021</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Mon, 15 Jun 2009 14:28:41 GMT</pubDate></item><item><title><![CDATA[Reply to Template-Parameter für Klassen-Funktion on Mon, 15 Jun 2009 14:31:14 GMT]]></title><description><![CDATA[<p>CSpille schrieb:</p>
<blockquote>
<p>ich lasse mir solche haltlosen Unterstellungen bezüglich Hausaufgaben nicht bieten.</p>
</blockquote>
<p>Dann empfehle ich dir in Zukunft, ein bisschen mehr Eigeninitiative zu zeigen oder wie es mir in diesem Fall scheint, das Problem genauer zu beschreiben. Denn erst in diesem 3. Beitrag von dir, erfährt man, dass es dir um virtuelle Funktionen geht. Allerdings sind nicht alle Funktionen in einer C++ Klasse virtuell, im Gegenteil die Mehrheit ist es nicht.</p>
<p>Wenn du einfach nachgefragt hättest, ob man eine virtuellen Methode auch als Funktionstemplate implementieren kann, dann hättest du auf der Stelle eine Antwort bekommen und zwar: Nein.</p>
<p>Edit, da die letzten zwei Beiträge verpasst:<br />
Falls du einen Workaround findest, bitte mitteilen. Es gibt ein paar Möglichkeiten, aber die setzen alle voraus, dass du in der Childklasse genau weisst, was da rauf kommt.</p>
<p>Grüssli</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1727022</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1727022</guid><dc:creator><![CDATA[Dravere]]></dc:creator><pubDate>Mon, 15 Jun 2009 14:31:14 GMT</pubDate></item><item><title><![CDATA[Reply to Template-Parameter für Klassen-Funktion on Mon, 15 Jun 2009 16:01:44 GMT]]></title><description><![CDATA[<p>CSpille schrieb:</p>
<blockquote>
<p>doSomething soll virtual sein. Genau das hatte ich befürchtet <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /><br />
Ich hatte mir nur irgendeinen Workaround erhofft.</p>
</blockquote>
<p>du musst entweder die dynamische polymorphie durch statische ersetzen oder die statische durch dynamische.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1727071</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1727071</guid><dc:creator><![CDATA[Shade Of Mine]]></dc:creator><pubDate>Mon, 15 Jun 2009 16:01:44 GMT</pubDate></item></channel></rss>