<?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[[gelöst] problem: Basisklasse undefiniert]]></title><description><![CDATA[<p>hi,</p>
<p>bekomme die Fehlermeldung:</p>
<pre><code>columnobject.h(8) : error C2504: 'DataObject': Basisklasse undefiniert
</code></pre>
<p>wenn ich versuche zu kompilieren. ColumnObject sieht wie folgt aus:</p>
<pre><code>#ifndef COLUMNOBJECT_H
#define COLUMNOBJECT_H

#include &quot;DataObject.h&quot;

/************* ColumnObject **************/
class ColumnObject : public DataObject // Basisklasse DataObject wird nicht gefunden!!!
{
public: 
.
.
.
</code></pre>
<p>Die datei DataObject.h wird offensichtlich gefunden da der kompiler meckert wenn ich die include-direktive umbenenne. irgendjemand eine idee?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/166743/gelöst-problem-basisklasse-undefiniert</link><generator>RSS for Node</generator><lastBuildDate>Tue, 15 Sep 2026 14:30:53 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/166743.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 02 Dec 2006 10:53:14 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to [gelöst] problem: Basisklasse undefiniert on Sat, 02 Dec 2006 11:25:30 GMT]]></title><description><![CDATA[<p>hi,</p>
<p>bekomme die Fehlermeldung:</p>
<pre><code>columnobject.h(8) : error C2504: 'DataObject': Basisklasse undefiniert
</code></pre>
<p>wenn ich versuche zu kompilieren. ColumnObject sieht wie folgt aus:</p>
<pre><code>#ifndef COLUMNOBJECT_H
#define COLUMNOBJECT_H

#include &quot;DataObject.h&quot;

/************* ColumnObject **************/
class ColumnObject : public DataObject // Basisklasse DataObject wird nicht gefunden!!!
{
public: 
.
.
.
</code></pre>
<p>Die datei DataObject.h wird offensichtlich gefunden da der kompiler meckert wenn ich die include-direktive umbenenne. irgendjemand eine idee?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1185695</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1185695</guid><dc:creator><![CDATA[snuuts]]></dc:creator><pubDate>Sat, 02 Dec 2006 11:25:30 GMT</pubDate></item><item><title><![CDATA[Reply to [gelöst] problem: Basisklasse undefiniert on Sat, 02 Dec 2006 11:04:28 GMT]]></title><description><![CDATA[<p>Der Compiler sieht die Klasse DataObject nicht. Ich nehme an, sie steht in DataObject.h. Da muß der Fehler sein. Im Zweifelsfall die Datei mal herzeigen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1185704</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1185704</guid><dc:creator><![CDATA[Z2]]></dc:creator><pubDate>Sat, 02 Dec 2006 11:04:28 GMT</pubDate></item><item><title><![CDATA[Reply to [gelöst] problem: Basisklasse undefiniert on Sat, 02 Dec 2006 11:09:59 GMT]]></title><description><![CDATA[<p>vll davor:</p>
<p>class DataObjekt;</p>
<p>schreiben</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1185709</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1185709</guid><dc:creator><![CDATA[BorisDieKlinge]]></dc:creator><pubDate>Sat, 02 Dec 2006 11:09:59 GMT</pubDate></item><item><title><![CDATA[Reply to [gelöst] problem: Basisklasse undefiniert on Sat, 02 Dec 2006 11:10:49 GMT]]></title><description><![CDATA[<p>Nein, das hilft überhaupt nichts.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1185711</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1185711</guid><dc:creator><![CDATA[Z2]]></dc:creator><pubDate>Sat, 02 Dec 2006 11:10:49 GMT</pubDate></item><item><title><![CDATA[Reply to [gelöst] problem: Basisklasse undefiniert on Sat, 02 Dec 2006 11:17:15 GMT]]></title><description><![CDATA[<p>danke schonmal für die schnelle antwort. hier der code:</p>
<pre><code>#ifndef DATAOBJECT_H
#define DATAOBJECT_H

#include &quot;ColumnObject.h&quot;

/****************** DataObject ******************/
class DataObject{
public:

	DataObject *L, *R, *U, *D; // pointers on 'neighbors' in the same row/column
    ColumnObject *C;		   // the corresponding column-object 

	DataObject(DataObject l, ColumnObject c);
};

#endif
</code></pre>
<p>kann es sein dass der fehler an dem &quot;gekreutzen&quot; include liegt? wenn ja wie kann ich das umgehen?</p>
<p>edit:<br />
ich hätte halt gerne eine columnobject welches von dataobject erbt, wobei aber jedes dataobject auf andere dataobjects und ein columnobject referenziert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1185716</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1185716</guid><dc:creator><![CDATA[snuuts]]></dc:creator><pubDate>Sat, 02 Dec 2006 11:17:15 GMT</pubDate></item><item><title><![CDATA[Reply to [gelöst] problem: Basisklasse undefiniert on Sat, 02 Dec 2006 11:19:55 GMT]]></title><description><![CDATA[<p>Ja, der Fehler liegt an dem gekreuzten include.</p>
<pre><code class="language-cpp">#include &quot;ColumnObject.h&quot; //Woher soll hier der Compiler DataObject schon kennen?

/****************** DataObject ******************/
class DataObject{
public:

    DataObject *L, *R, *U, *D; // pointers on 'neighbors' in the same row/column
    ColumnObject *C;           // the corresponding column-object 

    DataObject(DataObject l, ColumnObject c);
};
</code></pre>
<p>Du musst eine der beiden includes weglassen und stattdessen einfach nur die jeweilige Klasse deklarieren, d.h. mit</p>
<pre><code class="language-cpp">class DataObject;
</code></pre>
<p>bzw.</p>
<pre><code class="language-cpp">class ColumnObject;
</code></pre>
<p>Felix</p>
<p>P.S.: Cool, es gibt wieder die Weihnachtssmilies <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="😃"
    /> :xmas1: :xmas2:</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1185723</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1185723</guid><dc:creator><![CDATA[Phoemuex]]></dc:creator><pubDate>Sat, 02 Dec 2006 11:19:55 GMT</pubDate></item><item><title><![CDATA[Reply to [gelöst] problem: Basisklasse undefiniert on Sat, 02 Dec 2006 11:24:58 GMT]]></title><description><![CDATA[<p>super, danke!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1185729</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1185729</guid><dc:creator><![CDATA[snuuts]]></dc:creator><pubDate>Sat, 02 Dec 2006 11:24:58 GMT</pubDate></item><item><title><![CDATA[Reply to [gelöst] problem: Basisklasse undefiniert on Sat, 02 Dec 2006 11:31:40 GMT]]></title><description><![CDATA[<p>snuuts schrieb:</p>
<blockquote>
<p>kann es sein dass der fehler an dem &quot;gekreutzen&quot; include liegt? wenn ja wie kann ich das umgehen?</p>
</blockquote>
<p>Ja daran liegt es.<br />
Du kannst in DataObject.h eine Forwarddeklaration verwenden, statt &quot;ColumnObject.h&quot; zu inkludieren. Damit kannst in DataObject.h allerdings nur Zeiger oder Referenzen auf ColumnObject verwenden. Das heißt der Parameter im Konstruktor kann auch nur ein Zeiger (oder eine Referenz) sein:</p>
<pre><code class="language-cpp">#ifndef DATAOBJECT_H
#define DATAOBJECT_H

class ColumnObject;

/****************** DataObject ******************/
class DataObject{
public:

	DataObject *L, *R, *U, *D; // pointers on 'neighbors' in the same row/column
    ColumnObject *C;		   // the corresponding column-object 

	DataObject(DataObject l, ColumnObject* c);
};

#endif
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1185736</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1185736</guid><dc:creator><![CDATA[DJohn]]></dc:creator><pubDate>Sat, 02 Dec 2006 11:31:40 GMT</pubDate></item></channel></rss>