<?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[Vererbung über 2 Klassen hinweg]]></title><description><![CDATA[<p>Hi!<br />
Ich habe hier ein Problem. Ich habe eine Klasse A, eine Klasse B und eine Klasse C.<br />
Klasse B erbt von A und Klasse C soll von B erben. Das sieht dann schematisch folgendermaßen aus:</p>
<p>class A {...};</p>
<p>#include &quot;A.h&quot;<br />
class B : public A<br />
{...};</p>
<p>#include &quot;B.h&quot;<br />
class C : public B<br />
{...}</p>
<p>Das Problem ist, dass ein Compilerfehler kommt, der mir sagt, dass die Basisklasse B undefiniert sei. Ich habe auch schon versucht eine Vorwärtsdeklaration zu machen, also sowas:</p>
<p>class B;<br />
class C : public B<br />
{...}</p>
<p>Das hat aber auch nichts gebracht. Ich bin ziemlich ratlos. Weiß viellicht einer von euch, woran es noch liegen könnte?</p>
<p>Danke im Voraus!</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/245549/vererbung-über-2-klassen-hinweg</link><generator>RSS for Node</generator><lastBuildDate>Fri, 18 Sep 2026 18:28:32 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/245549.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 15 Jul 2009 15:29:03 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Vererbung über 2 Klassen hinweg on Wed, 15 Jul 2009 15:29:03 GMT]]></title><description><![CDATA[<p>Hi!<br />
Ich habe hier ein Problem. Ich habe eine Klasse A, eine Klasse B und eine Klasse C.<br />
Klasse B erbt von A und Klasse C soll von B erben. Das sieht dann schematisch folgendermaßen aus:</p>
<p>class A {...};</p>
<p>#include &quot;A.h&quot;<br />
class B : public A<br />
{...};</p>
<p>#include &quot;B.h&quot;<br />
class C : public B<br />
{...}</p>
<p>Das Problem ist, dass ein Compilerfehler kommt, der mir sagt, dass die Basisklasse B undefiniert sei. Ich habe auch schon versucht eine Vorwärtsdeklaration zu machen, also sowas:</p>
<p>class B;<br />
class C : public B<br />
{...}</p>
<p>Das hat aber auch nichts gebracht. Ich bin ziemlich ratlos. Weiß viellicht einer von euch, woran es noch liegen könnte?</p>
<p>Danke im Voraus!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1743616</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1743616</guid><dc:creator><![CDATA[Gast_Frage]]></dc:creator><pubDate>Wed, 15 Jul 2009 15:29:03 GMT</pubDate></item><item><title><![CDATA[Reply to Vererbung über 2 Klassen hinweg on Wed, 15 Jul 2009 15:38:50 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">//A.h
class A {...};

//B.h
#include &quot;A.h&quot;
class B : public A
{...};

//C.h
#include &quot;B.h&quot;
class C : public B
{...}
</code></pre>
<p>Das müsste eigentlich funktionieren. Hast du vielleicht etwas mehr Code?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1743624</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1743624</guid><dc:creator><![CDATA[TyRoXx]]></dc:creator><pubDate>Wed, 15 Jul 2009 15:38:50 GMT</pubDate></item><item><title><![CDATA[Reply to Vererbung über 2 Klassen hinweg on Wed, 15 Jul 2009 15:59:54 GMT]]></title><description><![CDATA[<p>ok, hier ist jetzt mal ein Code-Ausschnitt (etwas abgeändert, damit er nicht all zu lang wird, aber das wichtigste ist drin):</p>
<pre><code class="language-cpp">#ifndef CCARD_H_
#define CCARD_H_

#include &lt;string&gt;
#include &quot;stdlib.h&quot;

class CCard
	{
	public:
		CCard(string title, string description, bool RoundCard);
		CCard(void);
		virtual ~CCard();

	        virtual string getTitle();
		virtual string getDescription();
		virtual bool isTimeCard();

		void setTitle(string title);
		void setDescription(string description);
		void setTimeCard(bool isTimeCard);

	protected:

		/*
		 * title and description of a Card
		 */

		string _title;
		string _description;

		// the Card can be a TimeCard or not
		bool _isTime;

};

#endif

#ifndef TIMECARD_H_
#define TIMECARD_H_

#include &lt;string&gt;
#include &quot;CCard.h&quot;

class CTimeCard : public CCard
	{
	public:
		CTimeCard(void);
		~CTimeCard(void);

		int getDurationTime();

	protected:
		/**
		 * the time which indicates how long the card will last
		 */
		int m_duration;
	};

#ifndef SIEGECARD_H
#define SIEGEARD_H

#include &quot;Cards/TimeCard.h&quot;

class CSiegeCard : public CTimeCard
{
public:
	CSiegeCard(void);
	CSiegeCard(EventCardType::DiceType diceType);
	~CSiegeCard(void);

	virtual void siegeStrategy1();

	virtual void siegeStrategy2();

protected:

	/**
	 * the damage
	 */
	int m_damage;
};
#endif
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1743645</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1743645</guid><dc:creator><![CDATA[Gast_Frage]]></dc:creator><pubDate>Wed, 15 Jul 2009 15:59:54 GMT</pubDate></item><item><title><![CDATA[Reply to Vererbung über 2 Klassen hinweg on Wed, 15 Jul 2009 16:07:45 GMT]]></title><description><![CDATA[<p>Ich glaube, ich habe das Problem gelöst.<br />
Ich habe jetzt mal all meine Include-Anweisungen nochmal durchgesehen (ich hatte sie im Code-Ausschnitt nicht mit rein genommen, sorry). Da habe ich jedenfalls festgestellt, dass einige ich gar nicht gebraucht habe. Ich habe sie rausgeschmissen und jetzt kompiliert er ohne Fehler.<br />
Ich habe noch eine andere Klasse Player, die die Karten alle includiert. Ich hatte eine Include-Anweisung in der Card-Class auch drin von Player. Wenn ich die reinbaue, dann kommt der Fehler, wenn ich sie raus nehme, funktioniert es.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1743649</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1743649</guid><dc:creator><![CDATA[Gast_Frage]]></dc:creator><pubDate>Wed, 15 Jul 2009 16:07:45 GMT</pubDate></item></channel></rss>