<?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 Problem]]></title><description><![CDATA[<p>Hallo<br />
Ich habe folgendes Problem mit meiner Template class.<br />
Ich habe einen Konstruktoren der wie folgt aussieht</p>
<pre><code>template &lt;class T&gt;
heap&lt;T&gt;::heap(const vector&lt;T&gt; stl_vek)
{
   this-&gt;knoten = 0;
   int size = stl_vek.size;
   for(int i = 0; i &lt; size; i++)
   {
	   insert(stl_vek[i]);
	   this-&gt;anzahl++;
   }
}
</code></pre>
<p>wenn ich mir mit diesem Konstruktor ein Objekt anlege mekert der Compiler<br />
folgendes<br />
error C2947: expecting '&gt;' to terminate template-argument-list, found '&gt;&gt;'<br />
error C2664: 'heap&lt;T&gt;::heap(const heap&lt;T&gt; &amp;)' : cannot convert parameter 1 from 'bla' to 'const heap&lt;T&gt; &amp;'<br />
Ein Kopie Konstruktor ist auch deklariert nämmlich so</p>
<pre><code>heap(const heap&lt;T&gt; &amp;a);
</code></pre>
<p>und ich erzeuge das Objekt sowohl mit new wie auch direkt mit dem Konstruktor<br />
nämlich so:</p>
<pre><code>heap&lt;vector&lt;int&gt;&gt; dddd(vek);
heap ddd = new heap(vek);
</code></pre>
<p>Meine Frage ist warum klappt das nicht</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/142841/template-problem</link><generator>RSS for Node</generator><lastBuildDate>Wed, 02 Sep 2026 01:09:24 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/142841.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 03 Apr 2006 12:41:36 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Template Problem on Mon, 03 Apr 2006 12:41:36 GMT]]></title><description><![CDATA[<p>Hallo<br />
Ich habe folgendes Problem mit meiner Template class.<br />
Ich habe einen Konstruktoren der wie folgt aussieht</p>
<pre><code>template &lt;class T&gt;
heap&lt;T&gt;::heap(const vector&lt;T&gt; stl_vek)
{
   this-&gt;knoten = 0;
   int size = stl_vek.size;
   for(int i = 0; i &lt; size; i++)
   {
	   insert(stl_vek[i]);
	   this-&gt;anzahl++;
   }
}
</code></pre>
<p>wenn ich mir mit diesem Konstruktor ein Objekt anlege mekert der Compiler<br />
folgendes<br />
error C2947: expecting '&gt;' to terminate template-argument-list, found '&gt;&gt;'<br />
error C2664: 'heap&lt;T&gt;::heap(const heap&lt;T&gt; &amp;)' : cannot convert parameter 1 from 'bla' to 'const heap&lt;T&gt; &amp;'<br />
Ein Kopie Konstruktor ist auch deklariert nämmlich so</p>
<pre><code>heap(const heap&lt;T&gt; &amp;a);
</code></pre>
<p>und ich erzeuge das Objekt sowohl mit new wie auch direkt mit dem Konstruktor<br />
nämlich so:</p>
<pre><code>heap&lt;vector&lt;int&gt;&gt; dddd(vek);
heap ddd = new heap(vek);
</code></pre>
<p>Meine Frage ist warum klappt das nicht</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1029635</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1029635</guid><dc:creator><![CDATA[Mandy]]></dc:creator><pubDate>Mon, 03 Apr 2006 12:41:36 GMT</pubDate></item><item><title><![CDATA[Reply to Template Problem on Mon, 03 Apr 2006 12:46:11 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">template &lt;class T&gt;
heap&lt;T&gt;::heap(const vector&lt;T&gt; &amp;stl_vek)  //Besser Referenz nehmen
{
   this-&gt;knoten = 0;
   int size = stl_vek.size();  //Ist ne Methode, kein Attribut
   for(int i = 0; i &lt; size; ++i)
   {
	   insert(stl_vek[i]);
	   this-&gt;anzahl++;
   }
}
</code></pre>
<pre><code class="language-cpp">heap&lt; vector&lt;int&gt; &gt; dddd(vek);  //Da muss n Leerzeichen rein, der Compiler denkt sonst, du meinst den &gt;&gt; operator.
</code></pre>
<p>MfG</p>
<p>GPC</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1029638</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1029638</guid><dc:creator><![CDATA[GPC]]></dc:creator><pubDate>Mon, 03 Apr 2006 12:46:11 GMT</pubDate></item><item><title><![CDATA[Reply to Template Problem on Mon, 03 Apr 2006 12:46:13 GMT]]></title><description><![CDATA[<p>Du mußt ein Leerzeichen zwischen die beiden &gt; Symbole setzen, sonst werden die als Shift-Operator interpretiert (und der ist an dieser Stelle falsch).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1029641</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1029641</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Mon, 03 Apr 2006 12:46:13 GMT</pubDate></item><item><title><![CDATA[Reply to Template Problem on Mon, 03 Apr 2006 12:51:58 GMT]]></title><description><![CDATA[<p>Erstmal Danke !!<br />
Jetzt habe ich folgendes problem der Compiler meldet mir an der gleiche Stelle wo ich den Konstruktor aufrufe<br />
folgendes<br />
error C2664: 'heap&lt;T&gt;::heap(const heap&lt;T&gt; &amp;)' : cannot convert parameter 1 from 'std::vector&lt;_Ty&gt;' to 'const heap&lt;T&gt; &amp;'</p>
<p>was soll das heissen und wie krieg ich das weg</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1029645</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1029645</guid><dc:creator><![CDATA[Mandy]]></dc:creator><pubDate>Mon, 03 Apr 2006 12:51:58 GMT</pubDate></item><item><title><![CDATA[Reply to Template Problem on Mon, 03 Apr 2006 18:20:12 GMT]]></title><description><![CDATA[<p>Hallo?? Hat jemand ne Antwort</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1029856</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1029856</guid><dc:creator><![CDATA[Mandy]]></dc:creator><pubDate>Mon, 03 Apr 2006 18:20:12 GMT</pubDate></item><item><title><![CDATA[Reply to Template Problem on Mon, 03 Apr 2006 19:05:52 GMT]]></title><description><![CDATA[<p>Ich bin zwar auch kein Experte für Templates, und hab grade keinen Compiler zur Hand, aber dein Compiler will dir mit der Fehlermeldung glaube ich sagen,<br />
dass er in der einen Zeile implizit deinen Copy-Construktor verwenden will, mit den Argument const heap&lt;T&gt; &amp;. Als Argument gibst du ihm dann aber einen std::vector&lt;int&gt;, und er kennt keine Typumwandlung von nach std::vector&lt;_Ty&gt;<br />
const heap&lt;T&gt; &amp;.</p>
<p>Vieleicht funktioniert's, wenn du ihm explizit sagst, dass er nicht den Copy<br />
Konstruktor, sondern den anderen mit Argument const vector&lt;T&gt; verwenden soll.<br />
Also so:</p>
<p>heap&lt; vector&lt;int&gt; &gt;* ddd = new heap(vek);</p>
<p>oder vieleicht auch so:</p>
<p>heap&lt; vector&lt;int&gt; &gt;* ddd = new heap&lt; vector&lt;int&gt; &gt; (vek); <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1029876</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1029876</guid><dc:creator><![CDATA[T!R]]></dc:creator><pubDate>Mon, 03 Apr 2006 19:05:52 GMT</pubDate></item><item><title><![CDATA[Reply to Template Problem on Mon, 03 Apr 2006 20:42:16 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">template &lt;class T&gt;
heap&lt;T&gt;::heap(const vector&lt;T&gt; &amp;stl_vek)
</code></pre>
<p>und</p>
<pre><code class="language-cpp">heap&lt; vector&lt;int&gt; &gt; dddd(vek);
</code></pre>
<p>Wenn dein Argument vek nicht gerade vom Typ vector&lt;vector&lt;int&gt; &gt; ist kann das nichts geben.<br />
Ich denke das was du möchtest ist eher</p>
<pre><code class="language-cpp">std::vector&lt;int&gt; vek;
heap&lt;int&gt; dddd(vek);
</code></pre>
<p>oder?</p>
<p>MfG Spacelord</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1029923</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1029923</guid><dc:creator><![CDATA[Spacelord]]></dc:creator><pubDate>Mon, 03 Apr 2006 20:42:16 GMT</pubDate></item></channel></rss>