<?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 Spezialisierung]]></title><description><![CDATA[<p>Guten Morgen,<br />
ich hab folgendes Problem. Ich hab mir ein Klassentemplate CVektorT&lt;typename T&gt; gebastelt, in dem ich sowohl int, double als auch rationale Zahlen packen will. Das funktioniert soweit auch. Wenn ich aber nun zwei Variablen unterschiedlichen Typs hab, krieg ich es nicht hin, dass dafür eine Zuweisung erlaubt ist. Die Zuweisung müsste natürlich spezialisiert werden, wobei ich schon bei meiner Vermutung wäre, dies durch Template-Spezialisierung zu erreichen, ich weiss aber nicht, wie ich das realisieren könnte. Bsp:</p>
<pre><code class="language-cpp">CVektorT&lt;double&gt; vekEins;    //Vektor vom Typ double
CVektorT&lt;CRational&gt; vekZwei; //Vektor mit rationalen Zahlen
vekEins = vekZwei;           //Problem !!!
</code></pre>
<p>Ich hoffe jemand kann mir helfen, Grüsse<br />
CatDog</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/282614/template-spezialisierung</link><generator>RSS for Node</generator><lastBuildDate>Sun, 23 Aug 2026 00:34:01 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/282614.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 23 Feb 2011 07:08:17 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Template Spezialisierung on Wed, 23 Feb 2011 07:08:17 GMT]]></title><description><![CDATA[<p>Guten Morgen,<br />
ich hab folgendes Problem. Ich hab mir ein Klassentemplate CVektorT&lt;typename T&gt; gebastelt, in dem ich sowohl int, double als auch rationale Zahlen packen will. Das funktioniert soweit auch. Wenn ich aber nun zwei Variablen unterschiedlichen Typs hab, krieg ich es nicht hin, dass dafür eine Zuweisung erlaubt ist. Die Zuweisung müsste natürlich spezialisiert werden, wobei ich schon bei meiner Vermutung wäre, dies durch Template-Spezialisierung zu erreichen, ich weiss aber nicht, wie ich das realisieren könnte. Bsp:</p>
<pre><code class="language-cpp">CVektorT&lt;double&gt; vekEins;    //Vektor vom Typ double
CVektorT&lt;CRational&gt; vekZwei; //Vektor mit rationalen Zahlen
vekEins = vekZwei;           //Problem !!!
</code></pre>
<p>Ich hoffe jemand kann mir helfen, Grüsse<br />
CatDog</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2025079</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2025079</guid><dc:creator><![CDATA[CatDog11]]></dc:creator><pubDate>Wed, 23 Feb 2011 07:08:17 GMT</pubDate></item><item><title><![CDATA[Reply to Template Spezialisierung on Wed, 23 Feb 2011 07:31:58 GMT]]></title><description><![CDATA[<p>Moin,<br />
Du brauchst ein Zuweisungsoperatortemplate. Alternativ kannst du auch ein nicht explicites Kopiekontruktortemplate schreiben und in der Zuweisung mit copy/swap arbeiten.</p>
<pre><code class="language-cpp">template&lt;typename T&gt;
class Vector
{
public:
  template&lt;typename T2&gt;
  Vector&amp; operator=(const Vector&lt;T2&gt;&amp; other)
  { 
     // ... ?
     return *this;
  }
};

template&lt;typename T&gt;
class Vector
{
public:
    template&lt;typename T2&gt;
    Vector(const Vector&lt;T2&gt;&amp; other)
    {
        // ...
    }

    Vector&amp; operator=(Vector other)
    { 
        Swap(other);
        return *this;
    }

    void Swap(Vector&amp; other)
    {
        std::swap(/*..*/);
    }
};
</code></pre>
<p>In beiden Varianten hast du übrigens keinen Zugriff auf private oder geschützte Daten, da es sich bei Vector&lt;T2&gt; um eine fremde Klasse handelt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2025082</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2025082</guid><dc:creator><![CDATA[brotbernd]]></dc:creator><pubDate>Wed, 23 Feb 2011 07:31:58 GMT</pubDate></item></channel></rss>