<?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[Templateklasse nur dann sinnvoll, wenn für alle Datentypen gleich anwendbar?]]></title><description><![CDATA[<p>Hallo,</p>
<p>ist es denn üblich, dass man auch dann Klassen als Template definiert, wenn man diese nicht universell auf jeden Datentyp anwenden kann, sondern gesondert darauf reagieren muss? Angenommen, ich instanziiere ein Objekt von einer Templateklasse, und lege den Datentyp auf char* fest. Klassenintern kann aber jedoch nur mit Integern gearbeitet werden. Ist es also in so einem Fall sinnvoll, erst mit <em>if(typeid == char</em>)* zu überprüfen, ob es sich um einen String handelt, und wenn ja, diesen per atoi() zu einem Integer umzuwandeln, um dann damit weiterarbeiten zu können?</p>
<p>Danke für Eure Antworten!</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/199290/templateklasse-nur-dann-sinnvoll-wenn-für-alle-datentypen-gleich-anwendbar</link><generator>RSS for Node</generator><lastBuildDate>Sat, 03 Oct 2026 12:17:54 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/199290.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 30 Nov 2007 19:17:29 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Templateklasse nur dann sinnvoll, wenn für alle Datentypen gleich anwendbar? on Fri, 30 Nov 2007 19:17:29 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ist es denn üblich, dass man auch dann Klassen als Template definiert, wenn man diese nicht universell auf jeden Datentyp anwenden kann, sondern gesondert darauf reagieren muss? Angenommen, ich instanziiere ein Objekt von einer Templateklasse, und lege den Datentyp auf char* fest. Klassenintern kann aber jedoch nur mit Integern gearbeitet werden. Ist es also in so einem Fall sinnvoll, erst mit <em>if(typeid == char</em>)* zu überprüfen, ob es sich um einen String handelt, und wenn ja, diesen per atoi() zu einem Integer umzuwandeln, um dann damit weiterarbeiten zu können?</p>
<p>Danke für Eure Antworten!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1413118</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1413118</guid><dc:creator><![CDATA[CodeOriginator]]></dc:creator><pubDate>Fri, 30 Nov 2007 19:17:29 GMT</pubDate></item><item><title><![CDATA[Reply to Templateklasse nur dann sinnvoll, wenn für alle Datentypen gleich anwendbar? on Fri, 30 Nov 2007 19:50:26 GMT]]></title><description><![CDATA[<p>CodeOriginator schrieb:</p>
<blockquote>
<p>ist es denn üblich, dass man auch dann Klassen als Template definiert, wenn man diese nicht universell auf jeden Datentyp anwenden kann, sondern gesondert darauf reagieren muss?</p>
</blockquote>
<p>-&gt; Template Spezialisierung:</p>
<pre><code class="language-cpp">template&lt;class T&gt;
class Yoyo { };

//spezialsiert für char*
template&lt;&gt;
class Yoyo&lt;char*&gt; { };
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1413125</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1413125</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Fri, 30 Nov 2007 19:50:26 GMT</pubDate></item><item><title><![CDATA[Reply to Templateklasse nur dann sinnvoll, wenn für alle Datentypen gleich anwendbar? on Fri, 30 Nov 2007 19:58:41 GMT]]></title><description><![CDATA[<p>Also soll ich bei der Template-Spezialisierung meine Klasse doppelt definieren, einmal für das normale Template, und nocheinmal für das spezialisierte?! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f62e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_open_mouth"
      title=":open_mouth:"
      alt="😮"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1413128</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1413128</guid><dc:creator><![CDATA[CodeOriginator]]></dc:creator><pubDate>Fri, 30 Nov 2007 19:58:41 GMT</pubDate></item><item><title><![CDATA[Reply to Templateklasse nur dann sinnvoll, wenn für alle Datentypen gleich anwendbar? on Fri, 30 Nov 2007 20:21:33 GMT]]></title><description><![CDATA[<p>CodeOriginator schrieb:</p>
<blockquote>
<p>Also soll ich bei der Template-Spezialisierung meine Klasse doppelt definieren, einmal für das normale Template, und nocheinmal für das spezialisierte?! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f62e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_open_mouth"
      title=":open_mouth:"
      alt="😮"
    /></p>
</blockquote>
<p>Ja leider. Besser ist es natürlich, wenn du deine Algorithmen allgemein wie möglich hälts und sie auslagerst und es in der normalen Template Klasse und in der spezialisierten dann verwendest ...</p>
<p>Wie sieht dein Code genau aus, was willst du machen ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1413132</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1413132</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Fri, 30 Nov 2007 20:21:33 GMT</pubDate></item><item><title><![CDATA[Reply to Templateklasse nur dann sinnvoll, wenn für alle Datentypen gleich anwendbar? on Fri, 30 Nov 2007 20:43:38 GMT]]></title><description><![CDATA[<blockquote>
<p>Wie sieht dein Code genau aus, was willst du machen ?</p>
</blockquote>
<p>Bis jetzt steht nur das Klassengrundgerüst. Ich schreibe einen Wrapper 'DateTime', für die &lt;ctime&gt;, dessen Funktionalität um ein paar Klassenmethoden erweitert wird, wie z.B. zwei Daten vergleichen (früher als, später als, gleich). Mein Grundgedanke war der, dass sich die DateTime Klasse möglichst dem Benutzer anpasst, und ich somit auf Templates zurückgreifen werde. So muss sich der Benutzer nicht um das Umcasten zwischen char* und int und umgekehrt kümmern, sondern kann sein Datum bzw. seine Zeitangabe mit dem vorher festgelegten Datentyp übergeben, und erhält das Ergebnis auch dementsprechend in dem selben Datentyp.</p>
<p>Aber mittlerweile ist mir denke ich klar geworden, dass sich ein spezialisiertes Template (und somit zwei Klassen) dafür nicht lohnt. oder?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1413136</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1413136</guid><dc:creator><![CDATA[CodeOriginator]]></dc:creator><pubDate>Fri, 30 Nov 2007 20:43:38 GMT</pubDate></item><item><title><![CDATA[Reply to Templateklasse nur dann sinnvoll, wenn für alle Datentypen gleich anwendbar? on Fri, 30 Nov 2007 21:22:04 GMT]]></title><description><![CDATA[<p>Dafür kann man ja Funktionen (inklusive Operatoren) überladen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1413157</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1413157</guid><dc:creator><![CDATA[Nanyuki]]></dc:creator><pubDate>Fri, 30 Nov 2007 21:22:04 GMT</pubDate></item><item><title><![CDATA[Reply to Templateklasse nur dann sinnvoll, wenn für alle Datentypen gleich anwendbar? on Fri, 30 Nov 2007 21:24:24 GMT]]></title><description><![CDATA[<blockquote>
<p>Dafür kann man ja Funktionen (inklusive Operatoren) überladen.</p>
</blockquote>
<p>Das hätte ich eben als zweite Alternative vorgeschlagen. Eine Templateklasse hätte sich aber trotzdem etabliert, wenn man nicht noch ein spezialisiertes Template daraus machen müsste.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1413160</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1413160</guid><dc:creator><![CDATA[CodeOriginator]]></dc:creator><pubDate>Fri, 30 Nov 2007 21:24:24 GMT</pubDate></item><item><title><![CDATA[Reply to Templateklasse nur dann sinnvoll, wenn für alle Datentypen gleich anwendbar? on Fri, 30 Nov 2007 23:19:43 GMT]]></title><description><![CDATA[<p>Kannst doch auch einfach folgendes machen:</p>
<pre><code class="language-cpp">class foo
{
    template&lt;typename T&gt;
    void bar(T const&amp; data) { std::cout &lt;&lt; T &lt;&lt; std::endl; }
    template&lt;&gt;
    void bar(int const&amp; data) { std::cout &lt;&lt; data + 1 &lt;&lt; std::endl; }
};

int main()
{
    foo inst;
    inst.bar&lt;double&gt;(0.05);
    inst.bar&lt;int&gt;(0);
}
</code></pre>
<p>...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1413197</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1413197</guid><dc:creator><![CDATA[*D*Evil]]></dc:creator><pubDate>Fri, 30 Nov 2007 23:19:43 GMT</pubDate></item><item><title><![CDATA[Reply to Templateklasse nur dann sinnvoll, wenn für alle Datentypen gleich anwendbar? on Sat, 01 Dec 2007 06:22:27 GMT]]></title><description><![CDATA[<p>Ich würde in dem speziellen Fall weder Templates noch Overloads verwenden, da die verschiedenen möglichen Datumsformate nicht 1:1 auf C++ Typen abbildbar sind.<br />
&quot;int&quot; heisst nicht immer &quot;Sekunden seit XYZ&quot; und &quot;char const*&quot; heisst nicht immer ISO 8601 (und selbst ISO 8601 definiert einen HAUFEN verschiedener Formate).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1413229</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1413229</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Sat, 01 Dec 2007 06:22:27 GMT</pubDate></item></channel></rss>