<?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 bei Klassen - Problem]]></title><description><![CDATA[<p>Hi Leute</p>
<p>ich habe eine BasisKlasse:</p>
<pre><code class="language-cpp">class Cindicator
{
public:
	Cindicator( Cdatasource *_data );
	virtual ~Cindicator();
	virtual void InitIndicator();
};
</code></pre>
<p>und eine davon abgeleitete Klasse:</p>
<pre><code class="language-cpp">class Cexpmovingaverage : public Cindicator
{
public:
	Cexpmovingaverage( Cdatasource *_data );
	virtual ~Cexpmovingaverage();
	virtual void InitIndicator();
};
</code></pre>
<p>PS: die Klassen sind hier auf das Nötigste reduziert.</p>
<p>Bisher war <strong>InitIndicator</strong> nur eine Funktion in der abgeleiteten Klasse.<br />
D.h. die war nicht virtual ( und die Destruktoren bisher auch nicht ) und war somit in der Basisklasse auch nicht definiert.</p>
<p>Nun hab ich die virtual gemacht, weil ich die Funktion unabhängig vom Typ des Objekts ( Basisklasse oder abgeleitet ) aufrufen will.</p>
<p>Nur leider schlägt der Buildprozess ( Make ) jetzt einfach fehl, seit ich die Funktion und die Destruktoren virtualisiert habe.<br />
( ohne bestimmte Fehlermeldung ).</p>
<p>IDE ist <strong>Eclipse</strong>. Compiler ist <strong>g++</strong>. Betriebssystem ist <strong>GentooLinux</strong></p>
<p>Fehler:</p>
<blockquote>
<p>Description Resource Path Location Type<br />
make: *** [Xcalibur] Error 1 Xcalibur line 0 C/C++ Problem</p>
</blockquote>
<p>Jemand ne Idee?<br />
Sollte doch eigentlich so funktionieren.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/249613/vererbung-bei-klassen-problem</link><generator>RSS for Node</generator><lastBuildDate>Wed, 16 Sep 2026 08:37:15 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/249613.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 09 Sep 2009 18:00:19 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Vererbung bei Klassen - Problem on Wed, 09 Sep 2009 18:07:27 GMT]]></title><description><![CDATA[<p>Hi Leute</p>
<p>ich habe eine BasisKlasse:</p>
<pre><code class="language-cpp">class Cindicator
{
public:
	Cindicator( Cdatasource *_data );
	virtual ~Cindicator();
	virtual void InitIndicator();
};
</code></pre>
<p>und eine davon abgeleitete Klasse:</p>
<pre><code class="language-cpp">class Cexpmovingaverage : public Cindicator
{
public:
	Cexpmovingaverage( Cdatasource *_data );
	virtual ~Cexpmovingaverage();
	virtual void InitIndicator();
};
</code></pre>
<p>PS: die Klassen sind hier auf das Nötigste reduziert.</p>
<p>Bisher war <strong>InitIndicator</strong> nur eine Funktion in der abgeleiteten Klasse.<br />
D.h. die war nicht virtual ( und die Destruktoren bisher auch nicht ) und war somit in der Basisklasse auch nicht definiert.</p>
<p>Nun hab ich die virtual gemacht, weil ich die Funktion unabhängig vom Typ des Objekts ( Basisklasse oder abgeleitet ) aufrufen will.</p>
<p>Nur leider schlägt der Buildprozess ( Make ) jetzt einfach fehl, seit ich die Funktion und die Destruktoren virtualisiert habe.<br />
( ohne bestimmte Fehlermeldung ).</p>
<p>IDE ist <strong>Eclipse</strong>. Compiler ist <strong>g++</strong>. Betriebssystem ist <strong>GentooLinux</strong></p>
<p>Fehler:</p>
<blockquote>
<p>Description Resource Path Location Type<br />
make: *** [Xcalibur] Error 1 Xcalibur line 0 C/C++ Problem</p>
</blockquote>
<p>Jemand ne Idee?<br />
Sollte doch eigentlich so funktionieren.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1775478</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1775478</guid><dc:creator><![CDATA[It0101]]></dc:creator><pubDate>Wed, 09 Sep 2009 18:07:27 GMT</pubDate></item><item><title><![CDATA[Reply to Vererbung bei Klassen - Problem on Wed, 09 Sep 2009 18:10:14 GMT]]></title><description><![CDATA[<p>Ich hab zwar keine Ahnung was dein Fehler bedeuten soll, aber folgendes &quot;Minimal&quot;beispiel:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;

typedef int Cdatasource;

class Cindicator
{
public:
	Cindicator( Cdatasource *_data ) {}
	virtual ~Cindicator() {}
	virtual void InitIndicator() {}
};

class Cexpmovingaverage : public Cindicator
{
public:
	Cexpmovingaverage( Cdatasource *_data ) : Cindicator(0) {}
	virtual ~Cexpmovingaverage() {}
	virtual void InitIndicator() {}
};

int main()
{
	Cindicator a(0);
	Cexpmovingaverage b(0);
}
</code></pre>
<p>Läuft bei mir ohne Fehler oder Warnungen durch...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1775483</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1775483</guid><dc:creator><![CDATA[lagalopex]]></dc:creator><pubDate>Wed, 09 Sep 2009 18:10:14 GMT</pubDate></item><item><title><![CDATA[Reply to Vererbung bei Klassen - Problem on Wed, 09 Sep 2009 18:15:37 GMT]]></title><description><![CDATA[<p>das is ja genau das problem, dass ich keinen fehler vom compiler bekomme...</p>
<p>Anmerkung: die indicator-class ist eigentlich nur eine verallgemeinerung. Es existieren in Wirklichkeit nur abgeleitete Klassen ( da gibts noch mehr ).<br />
Aber das is grad nich relevant denk ich.</p>
<p>Wenn ich das <strong>virtual</strong> entferne und jeder abgeleiteten Klasse die Funktion &quot;un-virtualisiert&quot; spendiere, gibts keine Probleme.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1775489</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1775489</guid><dc:creator><![CDATA[It0101]]></dc:creator><pubDate>Wed, 09 Sep 2009 18:15:37 GMT</pubDate></item><item><title><![CDATA[Reply to Vererbung bei Klassen - Problem on Thu, 10 Sep 2009 06:51:47 GMT]]></title><description><![CDATA[<p>Hmm die Experten sind sprachlos, genauso wie ich...</p>
<p>Ob es sinnvoll ist, wenn ich das Project mal nicht über Eclipse sondern direkt<br />
über die Console mit g++ baue? Vielleicht krieg ich da mehr Informationen zum Fehler.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1775621</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1775621</guid><dc:creator><![CDATA[It0101]]></dc:creator><pubDate>Thu, 10 Sep 2009 06:51:47 GMT</pubDate></item><item><title><![CDATA[Reply to Vererbung bei Klassen - Problem on Thu, 10 Sep 2009 12:16:11 GMT]]></title><description><![CDATA[<p>lagalopex hat doch ein funktionierendes Beispiel gezeigt.</p>
<p>Zeig doch mal sonst lauffähiges komplettes Programm, der den selben Fehler erzeugt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1775808</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1775808</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Thu, 10 Sep 2009 12:16:11 GMT</pubDate></item><item><title><![CDATA[Reply to Vererbung bei Klassen - Problem on Thu, 10 Sep 2009 13:03:18 GMT]]></title><description><![CDATA[<p>Ich hab das Beispiel hier auf Arbeit auch mal mit dem gcc gebaut. Hier funzt es.<br />
Ich hab es vermutlich zu weit reduziert. Wenn ich zu Hause bin kümmer ich mich da nochmal drum.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1775843</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1775843</guid><dc:creator><![CDATA[It0101]]></dc:creator><pubDate>Thu, 10 Sep 2009 13:03:18 GMT</pubDate></item><item><title><![CDATA[Reply to Vererbung bei Klassen - Problem on Fri, 11 Sep 2009 07:13:14 GMT]]></title><description><![CDATA[<p>Hab es hinbekommen.<br />
Das Problem war eine undefined Reference weil die &quot;InitIndicator&quot;-Funktion der Basisklasse ( &quot;Cindicator&quot; ) nicht implementiert war. Ich hab sie dann von virtuell auf &quot;rein virtuell&quot; erweitert und jetzt funzt es.</p>
<p>Warum Eclipse mir die &quot;undefined reference&quot; nicht direkt aufs Auge gedrückt hat, weiß ich leider auch nicht...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1776255</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1776255</guid><dc:creator><![CDATA[It0101]]></dc:creator><pubDate>Fri, 11 Sep 2009 07:13:14 GMT</pubDate></item></channel></rss>