<?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-Klasse: &amp;quot;wrong number of template arguments (0, should be 1)&amp;quot;]]></title><description><![CDATA[<p>Hey Leute,<br />
ich bastle gerade an einer Template-Klasse die als Container für<br />
verschiedene Objekte dienen soll (ähnlich den Container in der STL).<br />
Ich habe jedoch noch nicht allzuviel Erfahrung im Umgang mit Template-Klassen.<br />
Daher hab ich keinen blassen Schimmer was ich falsch mache:<br />
Hier meine Klasse (ich hab sie fürs Forum stark vereinfacht)</p>
<pre><code class="language-cpp">//group_figure.h
#include &quot;basic_figure.h&quot;

template&lt;class figure&gt; class group_figure : basic_figure {

   public:
      group_figure();
      group_figure(int);
      ~group_figure();

   private:
      figure **members;
      bool *state;
      int number;

};

template&lt;class figure&gt; group_figure&lt;figure&gt;::group_figure() {

   OUTPUT(&quot;Group_figure-Default-Konstructor called, invalid&quot;)
   error = true;

}

template&lt;class figure&gt; group_figure&lt;figure&gt;::group_figure(int tnumber) {

   OUTPUT(&quot;Group_figure-Konstructor called&quot;)

   number = tnumber;
   members = new (figure*)[number];
   state = new bool[number];
   for(int x = 0; x &lt; number; ++x) {
      members[x] = (figure*) new figure;
      state[x] = true;
   }
}

template&lt;class figure&gt; group_figure&lt;figure&gt;::~group_figure() {

   OUTPUT(&quot;Group_figure-Destructor called&quot;)

   for(int x = 0; x &lt; number; ++x)
         delete members[x];
   delete [] members;
   delete [] state;

}
</code></pre>
<p>Und nun die dazugehörigen Fehlermeldungen:</p>
<pre><code>In file included from /usr/local/include/figure.h:14,
                 from code/pong.cpp:6:
/usr/local/include/FIGURE/group_figure.h:39: error: wrong number of template
   arguments (0, should be 1)
/usr/local/include/FIGURE/group_figure.h:11: error: provided for `
   template&lt;class&gt; class group_figure'
/usr/local/include/FIGURE/group_figure.h:39: error: declaration of template `
   template&lt;class&gt; int group_figure()'
/usr/local/include/FIGURE/group_figure.h:11: error: conflicts with previous
   declaration `template&lt;class&gt; class group_figure'
/usr/local/include/FIGURE/group_figure.h:11: error: previous non-function
   declaration `template&lt;class&gt; class group_figure'
/usr/local/include/FIGURE/group_figure.h:39: error: conflicts with function
   declaration `template&lt;class&gt; int group_figure()'
/usr/local/include/FIGURE/group_figure.h:47: error: wrong number of template
   arguments (0, should be 1)
/usr/local/include/FIGURE/group_figure.h:11: error: provided for `
   template&lt;class&gt; class group_figure'
/usr/local/include/FIGURE/group_figure.h:47: error: declaration of template `
   template&lt;class&gt; int group_figure(int)'
/usr/local/include/FIGURE/group_figure.h:11: error: conflicts with previous
   declaration `template&lt;class&gt; class group_figure'
/usr/local/include/FIGURE/group_figure.h:11: error: previous non-function
   declaration `template&lt;class&gt; class group_figure'
/usr/local/include/FIGURE/group_figure.h:47: error: conflicts with function
   declaration `template&lt;class&gt; int group_figure(int)'
/usr/local/include/FIGURE/group_figure.h: In function `int group_figure(int)':
/usr/local/include/FIGURE/group_figure.h:52: error: Syntaxfehler before `)'
   token
/usr/local/include/FIGURE/group_figure.h:55: error: Syntaxfehler before `)'
   token
/usr/local/include/FIGURE/group_figure.h: At global scope:
/usr/local/include/FIGURE/group_figure.h:60: error: wrong number of template
   arguments (0, should be 1)
/usr/local/include/FIGURE/group_figure.h:11: error: provided for `
   template&lt;class&gt; class group_figure'
/usr/local/include/FIGURE/group_figure.h:60: error: destructors must be member
   functions
/usr/local/include/FIGURE/group_figure.h:60: error: declaration of template `
   template&lt;class&gt; void group_figure()'
/usr/local/include/FIGURE/group_figure.h:11: error: conflicts with previous
   declaration `template&lt;class&gt; class group_figure'
/usr/local/include/FIGURE/group_figure.h:11: error: previous non-function
   declaration `template&lt;class&gt; class group_figure'
/usr/local/include/FIGURE/group_figure.h:60: error: conflicts with function
   declaration `template&lt;class&gt; void group_figure()'
</code></pre>
<p>Ich nehme mal an es ist ein ganz trivialer Fehler, wäre für aufklärung dankbar :). Schonmal Danke an alle die sich die Mühe gemacht haben das alles zu lesen.</p>
<p>PS:</p>
<pre><code>/usr/local/include/FIGURE/group_figure.h:52: error: Syntaxfehler before `)'
   token
/usr/local/include/FIGURE/group_figure.h:55: error: Syntaxfehler before `)'
   token
</code></pre>
<p>Diese beiden Zeilen interpretier ich so das ich keine Pointer auf meine<br />
Templates benutzten darf, wie ich es hier mache<br />
Z:52 &quot;members = new (figure*)[number];&quot;<br />
Weis vll. auch hier jemand Rat?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/154653/template-klasse-quot-wrong-number-of-template-arguments-0-should-be-1-quot</link><generator>RSS for Node</generator><lastBuildDate>Tue, 08 Sep 2026 00:32:42 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/154653.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 29 Jul 2006 08:59:35 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Template-Klasse: &amp;quot;wrong number of template arguments (0, should be 1)&amp;quot; on Sat, 29 Jul 2006 09:01:45 GMT]]></title><description><![CDATA[<p>Hey Leute,<br />
ich bastle gerade an einer Template-Klasse die als Container für<br />
verschiedene Objekte dienen soll (ähnlich den Container in der STL).<br />
Ich habe jedoch noch nicht allzuviel Erfahrung im Umgang mit Template-Klassen.<br />
Daher hab ich keinen blassen Schimmer was ich falsch mache:<br />
Hier meine Klasse (ich hab sie fürs Forum stark vereinfacht)</p>
<pre><code class="language-cpp">//group_figure.h
#include &quot;basic_figure.h&quot;

template&lt;class figure&gt; class group_figure : basic_figure {

   public:
      group_figure();
      group_figure(int);
      ~group_figure();

   private:
      figure **members;
      bool *state;
      int number;

};

template&lt;class figure&gt; group_figure&lt;figure&gt;::group_figure() {

   OUTPUT(&quot;Group_figure-Default-Konstructor called, invalid&quot;)
   error = true;

}

template&lt;class figure&gt; group_figure&lt;figure&gt;::group_figure(int tnumber) {

   OUTPUT(&quot;Group_figure-Konstructor called&quot;)

   number = tnumber;
   members = new (figure*)[number];
   state = new bool[number];
   for(int x = 0; x &lt; number; ++x) {
      members[x] = (figure*) new figure;
      state[x] = true;
   }
}

template&lt;class figure&gt; group_figure&lt;figure&gt;::~group_figure() {

   OUTPUT(&quot;Group_figure-Destructor called&quot;)

   for(int x = 0; x &lt; number; ++x)
         delete members[x];
   delete [] members;
   delete [] state;

}
</code></pre>
<p>Und nun die dazugehörigen Fehlermeldungen:</p>
<pre><code>In file included from /usr/local/include/figure.h:14,
                 from code/pong.cpp:6:
/usr/local/include/FIGURE/group_figure.h:39: error: wrong number of template
   arguments (0, should be 1)
/usr/local/include/FIGURE/group_figure.h:11: error: provided for `
   template&lt;class&gt; class group_figure'
/usr/local/include/FIGURE/group_figure.h:39: error: declaration of template `
   template&lt;class&gt; int group_figure()'
/usr/local/include/FIGURE/group_figure.h:11: error: conflicts with previous
   declaration `template&lt;class&gt; class group_figure'
/usr/local/include/FIGURE/group_figure.h:11: error: previous non-function
   declaration `template&lt;class&gt; class group_figure'
/usr/local/include/FIGURE/group_figure.h:39: error: conflicts with function
   declaration `template&lt;class&gt; int group_figure()'
/usr/local/include/FIGURE/group_figure.h:47: error: wrong number of template
   arguments (0, should be 1)
/usr/local/include/FIGURE/group_figure.h:11: error: provided for `
   template&lt;class&gt; class group_figure'
/usr/local/include/FIGURE/group_figure.h:47: error: declaration of template `
   template&lt;class&gt; int group_figure(int)'
/usr/local/include/FIGURE/group_figure.h:11: error: conflicts with previous
   declaration `template&lt;class&gt; class group_figure'
/usr/local/include/FIGURE/group_figure.h:11: error: previous non-function
   declaration `template&lt;class&gt; class group_figure'
/usr/local/include/FIGURE/group_figure.h:47: error: conflicts with function
   declaration `template&lt;class&gt; int group_figure(int)'
/usr/local/include/FIGURE/group_figure.h: In function `int group_figure(int)':
/usr/local/include/FIGURE/group_figure.h:52: error: Syntaxfehler before `)'
   token
/usr/local/include/FIGURE/group_figure.h:55: error: Syntaxfehler before `)'
   token
/usr/local/include/FIGURE/group_figure.h: At global scope:
/usr/local/include/FIGURE/group_figure.h:60: error: wrong number of template
   arguments (0, should be 1)
/usr/local/include/FIGURE/group_figure.h:11: error: provided for `
   template&lt;class&gt; class group_figure'
/usr/local/include/FIGURE/group_figure.h:60: error: destructors must be member
   functions
/usr/local/include/FIGURE/group_figure.h:60: error: declaration of template `
   template&lt;class&gt; void group_figure()'
/usr/local/include/FIGURE/group_figure.h:11: error: conflicts with previous
   declaration `template&lt;class&gt; class group_figure'
/usr/local/include/FIGURE/group_figure.h:11: error: previous non-function
   declaration `template&lt;class&gt; class group_figure'
/usr/local/include/FIGURE/group_figure.h:60: error: conflicts with function
   declaration `template&lt;class&gt; void group_figure()'
</code></pre>
<p>Ich nehme mal an es ist ein ganz trivialer Fehler, wäre für aufklärung dankbar :). Schonmal Danke an alle die sich die Mühe gemacht haben das alles zu lesen.</p>
<p>PS:</p>
<pre><code>/usr/local/include/FIGURE/group_figure.h:52: error: Syntaxfehler before `)'
   token
/usr/local/include/FIGURE/group_figure.h:55: error: Syntaxfehler before `)'
   token
</code></pre>
<p>Diese beiden Zeilen interpretier ich so das ich keine Pointer auf meine<br />
Templates benutzten darf, wie ich es hier mache<br />
Z:52 &quot;members = new (figure*)[number];&quot;<br />
Weis vll. auch hier jemand Rat?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1106514</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1106514</guid><dc:creator><![CDATA[Mario Sandler]]></dc:creator><pubDate>Sat, 29 Jul 2006 09:01:45 GMT</pubDate></item><item><title><![CDATA[Reply to Template-Klasse: &amp;quot;wrong number of template arguments (0, should be 1)&amp;quot; on Sat, 29 Jul 2006 13:14:30 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>folgender Quellcode kompiliert bei mir (g++ 3.3.6) problemlos, Änderungen sind dokumentiert:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;

/**
  Da du basic_figure nicht angegeben hast, hab ich halt mal n simples struct gewählt, wenn es auch ein Template ist, musst du das 
  auch beim Ableiten angeben: group_figure : basic_figure&lt;figure&gt; 
*/
struct basic_figure { 
  bool error;
};

template&lt;class figure&gt; 
class group_figure : basic_figure { 
  figure **members; 
  bool *state;
  int number; 

public: 
  group_figure(); 
  group_figure(int); 
  ~group_figure(); 

}; 

template&lt;class figure&gt; 
group_figure&lt;figure&gt;::group_figure() { 
  std::cout&lt;&lt;&quot;Group_figure-Default-Konstructor called, invalid\n&quot;;
  members = 0;  //Ich setzte die Zeiger mal auf 0, da du sie später löschen willst. Wenn man das hier nicht tut, gibt's n SegFault
  state = 0;
  error = true;
} 

template&lt;class figure&gt; 
group_figure&lt;figure&gt;::group_figure(int tnumber) {  
  std::cout&lt;&lt;&quot;Group_figure-Konstructor called\n&quot;;

  members = 0;  //Gleiches Spiel...
  state = 0;

  number = tnumber; 
  members = new (figure*)[number]; 
  state = new bool[number]; 
  for(int x = 0; x &lt; number; ++x) { 
    members[x] = (figure*) new figure; 
    state[x] = true; 
  } 
} 

template&lt;class figure&gt; 
group_figure&lt;figure&gt;::~group_figure() {  
  std::cout&lt;&lt;&quot;Group_figure-Destructor called\n&quot;;

  if (members != 0 &amp;&amp; state != 0) {  //Hier ne Abfrage ob null

    for(int x = 0; x &lt; number; ++x) 
      delete members[x]; 
    delete [] members; 
    delete [] state; 
  }
}

int main() {
  group_figure&lt;int&gt; gf(7);
  return 0;
};
</code></pre>
<p>So what? Hast du den wichtigen Tiel vom Source unterschlagen <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>EDIT: Kommentar nicht zugemacht</p>
<p>MfG</p>
<p>GPC</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1106659</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1106659</guid><dc:creator><![CDATA[GPC]]></dc:creator><pubDate>Sat, 29 Jul 2006 13:14:30 GMT</pubDate></item><item><title><![CDATA[Reply to Template-Klasse: &amp;quot;wrong number of template arguments (0, should be 1)&amp;quot; on Sun, 30 Jul 2006 12:42:27 GMT]]></title><description><![CDATA[<p>Hab den Fehler! 2 Stunden Arbeit und dann hab ich folgende Zeile in einem meiner Header gefunden</p>
<pre><code>#ifndef figure
#define figure
...
#endif
</code></pre>
<p>und das in Verbindung mit</p>
<pre><code>template&lt;class figure&gt;
</code></pre>
<p>Das Leben kann so grausam sein!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1107122</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1107122</guid><dc:creator><![CDATA[Mario Sandler]]></dc:creator><pubDate>Sun, 30 Jul 2006 12:42:27 GMT</pubDate></item><item><title><![CDATA[Reply to Template-Klasse: &amp;quot;wrong number of template arguments (0, should be 1)&amp;quot; on Sun, 30 Jul 2006 13:06:59 GMT]]></title><description><![CDATA[<p><a href="http://Storm.Xapek.de" rel="nofollow">Storm.Xapek.de</a> schrieb:</p>
<blockquote>
<p>Hab den Fehler! 2 Stunden Arbeit und dann hab ich folgende Zeile in einem meiner Header gefunden</p>
<pre><code>#ifndef figure
#define figure
...
#endif
</code></pre>
<p>und das in Verbindung mit</p>
<pre><code>template&lt;class figure&gt;
</code></pre>
<p>Das Leben kann so grausam sein!</p>
</blockquote>
<p>deswegen sehen meine Include - Guards so aus:</p>
<pre><code class="language-cpp">#ifndef GUARD_SUBDIR_DATEINAME_ENDUNG_INCLUDED
#define GUARD_SUBDIR_DATEINAME_ENDUNG_INCLUDED
#endif //GUARD_SUBDIR_DATEINAME_ENDUNG_INCLUDED
</code></pre>
<p>oder an einem Beispiel:<br />
Headerdatei: &quot;objects/figure.h&quot;</p>
<pre><code class="language-cpp">#ifndef GUARD_OBJECTS_FIGURE_H_INCLUDED
#define GUARD_OBJECTS_FIGURE_H_INCLUDED

#endif //GUARD_OBJECTS_FIGURE_H_INCLUDED
</code></pre>
<p>Und weil ich ja faul bin, verwende ich, wenn ich nur mit dem VC++ arbeite einfach nur</p>
<pre><code class="language-cpp">#pragma once
</code></pre>
<p>:p</p>
<p>BR<br />
Vinzenz</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1107141</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1107141</guid><dc:creator><![CDATA[evilissimo]]></dc:creator><pubDate>Sun, 30 Jul 2006 13:06:59 GMT</pubDate></item><item><title><![CDATA[Reply to Template-Klasse: &amp;quot;wrong number of template arguments (0, should be 1)&amp;quot; on Sun, 30 Jul 2006 16:39:42 GMT]]></title><description><![CDATA[<p>Also im Verstand halten, dass deine class Kopie Konstrukteur werkzeug oder verbieten musst.<br />
Weil es ist nicht ungewöhnlich Engpaß, benutzest std::vector anstatt Massive.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1107262</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1107262</guid><dc:creator><![CDATA[RoboTact]]></dc:creator><pubDate>Sun, 30 Jul 2006 16:39:42 GMT</pubDate></item><item><title><![CDATA[Reply to Template-Klasse: &amp;quot;wrong number of template arguments (0, should be 1)&amp;quot; on Sun, 30 Jul 2006 17:18:20 GMT]]></title><description><![CDATA[<p>RoboTact schrieb:</p>
<blockquote>
<p>Also im Verstand halten, dass deine class Kopie Konstrukteur werkzeug oder verbieten musst.<br />
Weil es ist nicht ungewöhnlich Engpaß, benutzest std::vector anstatt Massive.</p>
</blockquote>
<p>Sorry aber das hab ich jetzt überhaupt nicht verstanden. Das sieht irgendwie total nach Online-Translator ausgabe aus Oo</p>
<p>BR<br />
Vinzenz</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1107283</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1107283</guid><dc:creator><![CDATA[evilissimo]]></dc:creator><pubDate>Sun, 30 Jul 2006 17:18:20 GMT</pubDate></item><item><title><![CDATA[Reply to Template-Klasse: &amp;quot;wrong number of template arguments (0, should be 1)&amp;quot; on Sun, 30 Jul 2006 17:31:37 GMT]]></title><description><![CDATA[<p>RoboTact: According to your profile, you are from Moskow. You might write in English, I think it's better to understand than your German (this is not meant to be offending).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1107288</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1107288</guid><dc:creator><![CDATA[Michael E.]]></dc:creator><pubDate>Sun, 30 Jul 2006 17:31:37 GMT</pubDate></item><item><title><![CDATA[Reply to Template-Klasse: &amp;quot;wrong number of template arguments (0, should be 1)&amp;quot; on Sun, 30 Jul 2006 18:21:32 GMT]]></title><description><![CDATA[<p>Michael E. schrieb:</p>
<blockquote>
<p>RoboTact: According to your profile, you are from Moskow. You might write in English, I think it's better to understand than your German (this is not meant to be offending).</p>
</blockquote>
<p>Sorry, didn't realize it's THAT bad. Is english generally known by participants of forum, that is would it be OK to answer in english? All messages I saw were in German with few admixed engish words.</p>
<p>Translation of what I previously said:<br />
Keep in mind that you must either implement copy constructor, or prohibit one.<br />
When it doesn't somehow create bottleneck situation, use std::vector instead of arrays (even vector&lt;vector&lt;smth&gt; &gt;).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1107313</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1107313</guid><dc:creator><![CDATA[RoboTact]]></dc:creator><pubDate>Sun, 30 Jul 2006 18:21:32 GMT</pubDate></item><item><title><![CDATA[Reply to Template-Klasse: &amp;quot;wrong number of template arguments (0, should be 1)&amp;quot; on Sun, 30 Jul 2006 18:13:04 GMT]]></title><description><![CDATA[<p>RoboTact schrieb:</p>
<blockquote>
<p>Is english generally known by participants of forum, that is would it be OK to answer in english?</p>
</blockquote>
<p>IMHO yes. But you understand German, don't you? Maybe you write a little hint in your signature that you do so if you do so <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>
]]></description><link>https://www.c-plusplus.net/forum/post/1107316</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1107316</guid><dc:creator><![CDATA[Michael E.]]></dc:creator><pubDate>Sun, 30 Jul 2006 18:13:04 GMT</pubDate></item></channel></rss>