<?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[abstrakte Klasse]]></title><description><![CDATA[<p>hallo,<br />
ich habe eine abstrakte Klasse Atrikel. Und Eine Klasse Bucher die die Attribute von Artikel haben soll.<br />
Das ganze sieht bis jetzt so aus :</p>
<p>Klasse Artikel:</p>
<pre><code class="language-cpp">class Artikel
{
  public:
    //##ModelId=437DBE420148
    virtual void print() = 0;

  private:
    //##ModelId=437DBDBB035B
    int ArtikelNr;

    //##ModelId=437DBDDE0138
    double Preis;

    //##ModelId=437DBEBB0280
    string Titel;

};
</code></pre>
<p>Klasse Buecher:</p>
<pre><code class="language-cpp">class Buecher : public Artikel
{
  public:
    //##ModelId=437DC823007D
    bool suche();

    void print();

    //void ausgabe();

    //##ModelId=438313E0009C
    Buecher();

    //##ModelId=438313ED030D
    ~Buecher();

  private:
    //##ModelId=437DBE9000EA
    string Autor;

};
</code></pre>
<p>Jetzt möchte ich eine Instanz der Klasse Buecher anlegen und den Inhalt( ArtikelNur, Preis,Titel,Autor) mit der Methode print ausgeben.</p>
<p>Ausschnitt aus dem Hauptprogramm:</p>
<pre><code class="language-cpp">Artikel *Buch;
Buch = new Buecher();
Buch.print();
</code></pre>
<p>Funktion Print()</p>
<pre><code class="language-cpp">void Buecher::print()
{
  cout &lt;&lt; &quot; ArtikelNr &quot; &lt;&lt; ArtikelNr;
  //cout &lt;&lt; &quot; Preis &quot; &lt;&lt; Preis;
  //cout &lt;&lt; &quot; Titel &quot; &lt;&lt; Titel;
  cout &lt;&lt; &quot; Autor &quot; &lt;&lt; Autor;
  return ;
}
</code></pre>
<p>Das Problem bei cout &lt;&lt; &quot; ArtikelNr &quot; &lt;&lt; ArtikelNr;<br />
kommt [C++ Fehler] Bücher.cpp(41): E2247 Zugriff auf 'Artikel::ArtikelNr' nicht möglich...<br />
weis eine Rat ?? wäre Toll ...Danke<br />
chris</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/129443/abstrakte-klasse</link><generator>RSS for Node</generator><lastBuildDate>Wed, 26 Aug 2026 06:06:19 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/129443.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 13 Dec 2005 17:56:17 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to abstrakte Klasse on Tue, 13 Dec 2005 17:56:17 GMT]]></title><description><![CDATA[<p>hallo,<br />
ich habe eine abstrakte Klasse Atrikel. Und Eine Klasse Bucher die die Attribute von Artikel haben soll.<br />
Das ganze sieht bis jetzt so aus :</p>
<p>Klasse Artikel:</p>
<pre><code class="language-cpp">class Artikel
{
  public:
    //##ModelId=437DBE420148
    virtual void print() = 0;

  private:
    //##ModelId=437DBDBB035B
    int ArtikelNr;

    //##ModelId=437DBDDE0138
    double Preis;

    //##ModelId=437DBEBB0280
    string Titel;

};
</code></pre>
<p>Klasse Buecher:</p>
<pre><code class="language-cpp">class Buecher : public Artikel
{
  public:
    //##ModelId=437DC823007D
    bool suche();

    void print();

    //void ausgabe();

    //##ModelId=438313E0009C
    Buecher();

    //##ModelId=438313ED030D
    ~Buecher();

  private:
    //##ModelId=437DBE9000EA
    string Autor;

};
</code></pre>
<p>Jetzt möchte ich eine Instanz der Klasse Buecher anlegen und den Inhalt( ArtikelNur, Preis,Titel,Autor) mit der Methode print ausgeben.</p>
<p>Ausschnitt aus dem Hauptprogramm:</p>
<pre><code class="language-cpp">Artikel *Buch;
Buch = new Buecher();
Buch.print();
</code></pre>
<p>Funktion Print()</p>
<pre><code class="language-cpp">void Buecher::print()
{
  cout &lt;&lt; &quot; ArtikelNr &quot; &lt;&lt; ArtikelNr;
  //cout &lt;&lt; &quot; Preis &quot; &lt;&lt; Preis;
  //cout &lt;&lt; &quot; Titel &quot; &lt;&lt; Titel;
  cout &lt;&lt; &quot; Autor &quot; &lt;&lt; Autor;
  return ;
}
</code></pre>
<p>Das Problem bei cout &lt;&lt; &quot; ArtikelNr &quot; &lt;&lt; ArtikelNr;<br />
kommt [C++ Fehler] Bücher.cpp(41): E2247 Zugriff auf 'Artikel::ArtikelNr' nicht möglich...<br />
weis eine Rat ?? wäre Toll ...Danke<br />
chris</p>
]]></description><link>https://www.c-plusplus.net/forum/post/941275</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/941275</guid><dc:creator><![CDATA[chri5]]></dc:creator><pubDate>Tue, 13 Dec 2005 17:56:17 GMT</pubDate></item><item><title><![CDATA[Reply to abstrakte Klasse on Tue, 13 Dec 2005 17:59:49 GMT]]></title><description><![CDATA[<p>Du hast ArtikelNr private gemacht. dann kann auch nur Artikel drauf zugreifen.<br />
Machs protected.<br />
BTW das ist falsch</p>
<pre><code class="language-cpp">Artikel *Buch;
Buch = new Buecher();
//Buch.print();
Buch-&gt;print();
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/941279</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/941279</guid><dc:creator><![CDATA[ZuK]]></dc:creator><pubDate>Tue, 13 Dec 2005 17:59:49 GMT</pubDate></item><item><title><![CDATA[Reply to abstrakte Klasse on Tue, 13 Dec 2005 18:07:30 GMT]]></title><description><![CDATA[<p>hallo,<br />
Danke für diese schnelle Antwort.<br />
Funktioniert.<br />
Chris</p>
]]></description><link>https://www.c-plusplus.net/forum/post/941288</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/941288</guid><dc:creator><![CDATA[chri5]]></dc:creator><pubDate>Tue, 13 Dec 2005 18:07:30 GMT</pubDate></item><item><title><![CDATA[Reply to abstrakte Klasse on Tue, 13 Dec 2005 18:28:45 GMT]]></title><description><![CDATA[<p>btw, Singular von &quot;Buecher&quot; ist &quot;Buch&quot; <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/941312</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/941312</guid><dc:creator><![CDATA[finix]]></dc:creator><pubDate>Tue, 13 Dec 2005 18:28:45 GMT</pubDate></item><item><title><![CDATA[Reply to abstrakte Klasse on Tue, 13 Dec 2005 18:43:44 GMT]]></title><description><![CDATA[<p>Nein, protected ist nicht gut. Variablen sollten immer private sein. Du könntest natürlich Getter Methoden implementieren, aber am einfachsten machst du folgendes:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;

class Artikel {
public:
  Artikel() : ArtikelNr(100) { }
  virtual void print() const =0;

private:
  int ArtikelNr;
  // ...
};

// Die Artikel Klasse hat ein print, was die Artikel Informationen ausgibt
void Artikel::print() const {
  std::cout &lt;&lt; &quot;Artikel Nummer: &quot; &lt;&lt; ArtikelNr &lt;&lt; '\n';
}

class Buch : public Artikel {
public:
  void print() const;
};

void Buch::print() const {
  Artikel::print(); //Das wird einfach von abgeleiteten Klassen aufgerufen
  std::cout &lt;&lt; &quot;Buch\n&quot;;
}

int main() {
  Buch b;
  b.print();
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/941330</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/941330</guid><dc:creator><![CDATA[rüdiger]]></dc:creator><pubDate>Tue, 13 Dec 2005 18:43:44 GMT</pubDate></item></channel></rss>