<?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[Abgeleitete Template-Klasse]]></title><description><![CDATA[<p>Hallo @all,</p>
<p>könnt ihr mir bitte erklären, warum ich in der abgeleiteten Klasse <strong>colored_cell</strong> keinen Zugriff auf das in der primären Klasse deklarierte <strong>info</strong> habe? Normalerweise werden doch die als protected deklarierten Variablen an die Kindklasse weitergereicht.</p>
<p><em>Fehler: info was not declared in this scope</em></p>
<pre><code class="language-cpp">#include &lt;iostream&gt;

template &lt;class T&gt; class cell {
  protected:
    T info;
  public:
    void set(T x) {
      info = x;
    }
    T get() {
      return info;
    }
};

template &lt;class T&gt; class colored_cell : public cell&lt;T&gt; {
  protected:
    char color;

  public:
    void set_color(char col) {
      color=col;
    }
    char get_color() {
      return color;
    }
    T get() {
      if ( color != 'w' )
        return info; // HIER TRITT DER FEHLER AUF
      return 0;
    }
};
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/216105/abgeleitete-template-klasse</link><generator>RSS for Node</generator><lastBuildDate>Sun, 11 Oct 2026 19:18:15 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/216105.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 19 Jun 2008 09:26:26 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Abgeleitete Template-Klasse on Thu, 19 Jun 2008 09:26:26 GMT]]></title><description><![CDATA[<p>Hallo @all,</p>
<p>könnt ihr mir bitte erklären, warum ich in der abgeleiteten Klasse <strong>colored_cell</strong> keinen Zugriff auf das in der primären Klasse deklarierte <strong>info</strong> habe? Normalerweise werden doch die als protected deklarierten Variablen an die Kindklasse weitergereicht.</p>
<p><em>Fehler: info was not declared in this scope</em></p>
<pre><code class="language-cpp">#include &lt;iostream&gt;

template &lt;class T&gt; class cell {
  protected:
    T info;
  public:
    void set(T x) {
      info = x;
    }
    T get() {
      return info;
    }
};

template &lt;class T&gt; class colored_cell : public cell&lt;T&gt; {
  protected:
    char color;

  public:
    void set_color(char col) {
      color=col;
    }
    char get_color() {
      return color;
    }
    T get() {
      if ( color != 'w' )
        return info; // HIER TRITT DER FEHLER AUF
      return 0;
    }
};
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1532080</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1532080</guid><dc:creator><![CDATA[Dressman1981]]></dc:creator><pubDate>Thu, 19 Jun 2008 09:26:26 GMT</pubDate></item><item><title><![CDATA[Reply to Abgeleitete Template-Klasse on Thu, 19 Jun 2008 09:41:47 GMT]]></title><description><![CDATA[<p>(Vom Templateparameter) abhängige Basisklassen werden beim unqualifizierten Lookup nicht durchsucht - können nicht durchsucht werden, denn ohne Kenntnis des konkreten Parameters ist es unmöglich, das richtige Template zu ermitteln (bedenke: es könnten noch ggf. später Spezialisierungen hinzukommen). Aus diesem Grunde ist auch es von vornherein nicht erforderlich, ein Template, dessen Spezialisierungen als abhängige Basisklasse dienen, vor dem Template zu definieren, das ableitet (die Definition muss selbstverständlich erfolgt sein, bevor irgendeine konkrete Spezialisierung benutzt wird).</p>
<pre><code class="language-cpp">template &lt;class T&gt; class cell; // nur deklariert

template &lt;class T&gt; class colored_cell : public cell&lt;T&gt; {
  protected:
    char color;

  public:
    void set_color(char col) {
      color=col;
    }
    char get_color() {
      return color;
    }
    T get() {
      if ( color != 'w' )
        return info; // HIER TRITT DER FEHLER AUF - das überrascht nun nicht mehr.
      return 0;
    }
};
</code></pre>
<p>Abhilfe schafft explizite Qualifikation</p>
<pre><code class="language-cpp">return cell&lt;T&gt;::info;
</code></pre>
<p>oder die ausdrückliche Verwendung von this bzw. eines beliebigen Objektes des Typs (es geht im Kern darum, festzustellen, dass der unbekannte Name ein Klassenmember sein soll).</p>
<pre><code class="language-cpp">return this-&gt;info;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1532086</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1532086</guid><dc:creator><![CDATA[camper]]></dc:creator><pubDate>Thu, 19 Jun 2008 09:41:47 GMT</pubDate></item><item><title><![CDATA[Reply to Abgeleitete Template-Klasse on Thu, 19 Jun 2008 09:48:49 GMT]]></title><description><![CDATA[<p>Hallo Camper,</p>
<p>vielen Dank für die ausführliche Erklärung! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /></p>
<p>Ich werde das mit dem this-Pointer umsetzen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1532089</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1532089</guid><dc:creator><![CDATA[Dressman1981]]></dc:creator><pubDate>Thu, 19 Jun 2008 09:48:49 GMT</pubDate></item><item><title><![CDATA[Reply to Abgeleitete Template-Klasse on Thu, 19 Jun 2008 10:33:22 GMT]]></title><description><![CDATA[<p>Nur als Zusatz, alternativ zu campers Vorschlägen kann man auch 'using' benutzen:</p>
<pre><code class="language-cpp">template &lt;class T&gt; class colored_cell : public cell&lt;T&gt; {
protected:
    using cell&lt;T&gt;::info;
…
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1532128</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1532128</guid><dc:creator><![CDATA[Konrad Rudolph]]></dc:creator><pubDate>Thu, 19 Jun 2008 10:33:22 GMT</pubDate></item><item><title><![CDATA[Reply to Abgeleitete Template-Klasse on Thu, 19 Jun 2008 10:48:01 GMT]]></title><description><![CDATA[<p>Hallo Konrad,</p>
<p>danke für die Zusatzinfo!<br />
Alle 3 Varianten funktionieren wunderbar.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1532137</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1532137</guid><dc:creator><![CDATA[Dressman1981]]></dc:creator><pubDate>Thu, 19 Jun 2008 10:48:01 GMT</pubDate></item></channel></rss>