<?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 Klassen: Problem solved :)]]></title><description><![CDATA[<p>Problem solved <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
<pre><code class="language-cpp">/*
 * Reifenhandel.cpp
 *
 *  Created on: 06.02.2010
 *      Author: c.groupe
 */

#include &lt;iostream&gt;
#include &lt;string&gt;
using namespace std;

class Artikel
{
public:
	char Namen[16+1];  		// +1 Nullzeichen '\0'
	double Einkaufspreis;
	long Anzahl;

	virtual double Verkaufspreis() =0;
};

enum MaterialTyp { Stahl =1, Alu };

class Felge : public Artikel
{
public:
	MaterialTyp Material;
	virtual double Verkaufspreis();
};

class Reifen : public Artikel
{
public:
	char Dimension[8+1]; 	// +1 Nullzeichen '\0'
	virtual double Verkaufspreis();
};

class Rad : public Artikel
{
public:
	virtual double Verkaufspreis();

private:
	Felge felge;
	Reifen reifen;
};

double Felge::Verkaufspreis()
{
	return Einkaufspreis * 1.5;
}
double Reifen::Verkaufspreis()
{
    return Einkaufspreis * 1.3;
}
double Rad::Verkaufspreis()
{
	return ( felge.Verkaufspreis()+reifen.Verkaufspreis() )*0.9;
}

int main()
{

    Artikel* artikel[3];
    artikel[0] = new Felge();
    artikel[1] = new Reifen();
    artikel[2] = new Rad();

    const string art [ ] = {&quot;Felge&quot;, &quot;Reifen&quot;, &quot;Rad&quot; };

    for (int i = 0; i &lt; 3 ; i++)
    {
      cout &lt;&lt; &quot;Verkaufspreis von &quot; &lt;&lt; art[i] &lt;&lt; &quot;: &quot; &lt;&lt; artikel[i]-&gt;Verkaufspreis() &lt;&lt; endl;
      delete artikel[i];
    }

    return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/260539/abstrakte-klassen-problem-solved</link><generator>RSS for Node</generator><lastBuildDate>Tue, 08 Sep 2026 00:35:56 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/260539.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 06 Feb 2010 17:14:41 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Abstrakte Klassen: Problem solved :) on Sat, 06 Feb 2010 17:45:27 GMT]]></title><description><![CDATA[<p>Problem solved <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
<pre><code class="language-cpp">/*
 * Reifenhandel.cpp
 *
 *  Created on: 06.02.2010
 *      Author: c.groupe
 */

#include &lt;iostream&gt;
#include &lt;string&gt;
using namespace std;

class Artikel
{
public:
	char Namen[16+1];  		// +1 Nullzeichen '\0'
	double Einkaufspreis;
	long Anzahl;

	virtual double Verkaufspreis() =0;
};

enum MaterialTyp { Stahl =1, Alu };

class Felge : public Artikel
{
public:
	MaterialTyp Material;
	virtual double Verkaufspreis();
};

class Reifen : public Artikel
{
public:
	char Dimension[8+1]; 	// +1 Nullzeichen '\0'
	virtual double Verkaufspreis();
};

class Rad : public Artikel
{
public:
	virtual double Verkaufspreis();

private:
	Felge felge;
	Reifen reifen;
};

double Felge::Verkaufspreis()
{
	return Einkaufspreis * 1.5;
}
double Reifen::Verkaufspreis()
{
    return Einkaufspreis * 1.3;
}
double Rad::Verkaufspreis()
{
	return ( felge.Verkaufspreis()+reifen.Verkaufspreis() )*0.9;
}

int main()
{

    Artikel* artikel[3];
    artikel[0] = new Felge();
    artikel[1] = new Reifen();
    artikel[2] = new Rad();

    const string art [ ] = {&quot;Felge&quot;, &quot;Reifen&quot;, &quot;Rad&quot; };

    for (int i = 0; i &lt; 3 ; i++)
    {
      cout &lt;&lt; &quot;Verkaufspreis von &quot; &lt;&lt; art[i] &lt;&lt; &quot;: &quot; &lt;&lt; artikel[i]-&gt;Verkaufspreis() &lt;&lt; endl;
      delete artikel[i];
    }

    return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1851532</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1851532</guid><dc:creator><![CDATA[c.groupe]]></dc:creator><pubDate>Sat, 06 Feb 2010 17:45:27 GMT</pubDate></item><item><title><![CDATA[Reply to Abstrakte Klassen: Problem solved :) on Sat, 06 Feb 2010 17:16:24 GMT]]></title><description><![CDATA[<p>Was geht denn nicht?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1851536</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1851536</guid><dc:creator><![CDATA[wx++]]></dc:creator><pubDate>Sat, 06 Feb 2010 17:16:24 GMT</pubDate></item><item><title><![CDATA[Reply to Abstrakte Klassen: Problem solved :) on Sat, 06 Feb 2010 17:27:53 GMT]]></title><description><![CDATA[<p>Da sind Rechtschreibfehler drin.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1851542</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1851542</guid><dc:creator><![CDATA[Zeus]]></dc:creator><pubDate>Sat, 06 Feb 2010 17:27:53 GMT</pubDate></item><item><title><![CDATA[Reply to Abstrakte Klassen: Problem solved :) on Sat, 06 Feb 2010 17:29:14 GMT]]></title><description><![CDATA[<p>wx++ schrieb:</p>
<blockquote>
<p>Was geht denn nicht?</p>
</blockquote>
<blockquote>
<p>..\src\Reifenhandel.cpp:39: error: cannot declare field `Rad::reifen' to be of type `Reifen'<br />
..\src\Reifenhandel.cpp:39: error: because the following virtual functions are abstract:<br />
..\src\Reifenhandel.cpp:19: error: virtual double Artikel::Verkaufspreis()<br />
..\src\Reifenhandel.cpp:53: error: no `double Reifen::Verkaufspreis()' member function declared in class `Reifen'<br />
..\src\Reifenhandel.cpp:57: error: no `double Rad::Verkaufspreis()' member function declared in class `Rad'<br />
..\src\Reifenhandel.cpp: In function <code>int main()': ..\\src\\Reifenhandel.cpp:66: error: cannot allocate an object of type</code>Reifen'<br />
..\src\Reifenhandel.cpp:66: error: since type <code>Reifen' has abstract virtual functions ..\\src\\Reifenhandel.cpp:67: error: cannot allocate an object of type</code>Rad'<br />
..\src\Reifenhandel.cpp:67: error: because the following virtual functions are abstract:<br />
..\src\Reifenhandel.cpp:19: error: virtual double Artikel::Verkaufspreis()</p>
</blockquote>
]]></description><link>https://www.c-plusplus.net/forum/post/1851544</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1851544</guid><dc:creator><![CDATA[c.groupe]]></dc:creator><pubDate>Sat, 06 Feb 2010 17:29:14 GMT</pubDate></item><item><title><![CDATA[Reply to Abstrakte Klassen: Problem solved :) on Sat, 06 Feb 2010 17:30:30 GMT]]></title><description><![CDATA[<p>Zeus schrieb:</p>
<blockquote>
<p>Da sind Rechtschreibfehler drin.</p>
</blockquote>
<p>omg, sry</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1851545</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1851545</guid><dc:creator><![CDATA[c.groupe]]></dc:creator><pubDate>Sat, 06 Feb 2010 17:30:30 GMT</pubDate></item></channel></rss>