<?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[Brauche Hilfe bei Fehler ...]]></title><description><![CDATA[<p>Hi,</p>
<p>folgende Konstruktion, etwas vereinfacht aus meiner Programmarchitektur extrahiert:</p>
<pre><code class="language-cpp">template &lt;class T&gt;
class C_Base {
    ...
    }; 		

template &lt;typename T&gt;
class C_1 : public T, C_Base&lt;T&gt; {    

  public:
    C_1(const T&amp; t) : T(t) {}    
    }; 		

template &lt;class T, template &lt;class&gt; class TT&gt;
class R {    
    typedef C_1&lt;T&gt; TYPE1;
    typedef TT&lt;T&gt;  TYPE2;

  public:
    virtual TYPE2 operator() (const TYPE1&amp; t) const {return TYPE2(t);}
    };
</code></pre>
<p>Instantiieren in main.cpp:</p>
<pre><code class="language-cpp">R&lt;int,C_1&gt; test;
</code></pre>
<p>führt zu folgendem Fehler:</p>
<blockquote>
<p>..Test.h:41:<br />
instantiated from TT&lt;T&gt; R&lt;T, TT&gt;::operator()(const C_1&lt;T&gt;&amp;) const<br />
[with T = int, TT = C_1]<br />
main.cpp:66: instantiated from here<br />
..Test.h:5: error: base type int fails to be a struct or class type</p>
<p>make: *** [main.o] Error 1</p>
</blockquote>
<p>die angemeckerte Zeile 5 ist die Zeile 8 in obigem listing <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
<p>deklariert man operator() als nicht virtuell klappt es <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /> ... ich brauch s aber mit virtuellem ()-operator. <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>Falls jemand einen guten Tip hat, vielen Dank!</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/187054/brauche-hilfe-bei-fehler</link><generator>RSS for Node</generator><lastBuildDate>Thu, 24 Sep 2026 13:57:33 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/187054.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 15 Jul 2007 10:51:56 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Brauche Hilfe bei Fehler ... on Sun, 15 Jul 2007 10:51:56 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>folgende Konstruktion, etwas vereinfacht aus meiner Programmarchitektur extrahiert:</p>
<pre><code class="language-cpp">template &lt;class T&gt;
class C_Base {
    ...
    }; 		

template &lt;typename T&gt;
class C_1 : public T, C_Base&lt;T&gt; {    

  public:
    C_1(const T&amp; t) : T(t) {}    
    }; 		

template &lt;class T, template &lt;class&gt; class TT&gt;
class R {    
    typedef C_1&lt;T&gt; TYPE1;
    typedef TT&lt;T&gt;  TYPE2;

  public:
    virtual TYPE2 operator() (const TYPE1&amp; t) const {return TYPE2(t);}
    };
</code></pre>
<p>Instantiieren in main.cpp:</p>
<pre><code class="language-cpp">R&lt;int,C_1&gt; test;
</code></pre>
<p>führt zu folgendem Fehler:</p>
<blockquote>
<p>..Test.h:41:<br />
instantiated from TT&lt;T&gt; R&lt;T, TT&gt;::operator()(const C_1&lt;T&gt;&amp;) const<br />
[with T = int, TT = C_1]<br />
main.cpp:66: instantiated from here<br />
..Test.h:5: error: base type int fails to be a struct or class type</p>
<p>make: *** [main.o] Error 1</p>
</blockquote>
<p>die angemeckerte Zeile 5 ist die Zeile 8 in obigem listing <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
<p>deklariert man operator() als nicht virtuell klappt es <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /> ... ich brauch s aber mit virtuellem ()-operator. <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>Falls jemand einen guten Tip hat, vielen Dank!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1325735</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1325735</guid><dc:creator><![CDATA[NILNAD]]></dc:creator><pubDate>Sun, 15 Jul 2007 10:51:56 GMT</pubDate></item><item><title><![CDATA[Reply to Brauche Hilfe bei Fehler ... on Sun, 15 Jul 2007 11:06:10 GMT]]></title><description><![CDATA[<p>Du hast in R&lt;int, ...&gt; ein C_1&lt;int&gt; und diese klasse hat als grundtyp einen int.<br />
Also steht nach der auflösung bei C_1 da:<br />
[cpp]<br />
class C_1 : public <strong>int</strong>, C_Base&lt;int&gt;<br />
{<br />
...<br />
}<br />
[/cpp]<br />
Und, dass man von int nicht ableiten kann müsste klar sein(Basistyp...)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1325744</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1325744</guid><dc:creator><![CDATA[Dennis123]]></dc:creator><pubDate>Sun, 15 Jul 2007 11:06:10 GMT</pubDate></item></channel></rss>