<?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[cast Fehler von abgeleiteter Klasse]]></title><description><![CDATA[<p>Hiho,<br />
ich versuche gerade mir eine Klasse zu erstellen die mir den Zugriff auf Dateioperationen vereinfachen soll.<br />
Dazu habe ich mir eine Klasse erstellt und diese von FILE abgeleitet.<br />
Im Konstruktor meiner Klasse versuche ich nun diese mit einer Datei zu initialisieren scheitere jedoch an einem cast-Fehler <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":/"
      alt="😕"
    /></p>
<p>Vieleicht kann mir ja von euch einer weiterhelfen, währe sehr dankbar!<br />
Fehlermeldung:<br />
**error C2440: '=' : cannot convert from 'FILE <em>' to 'RandomAccessFile <em>const'<br />
Cast from base to derived requires dynamic_cast or static_cast</em></em></p>
<p>RandomAccessFile.h</p>
<pre><code class="language-cpp">#include &lt;stdio.h&gt;

class RandomAccessFile : public FILE
{
	public:
		RandomAccessFile(const char, const char);
		~RandomAccessFile(void);
}
</code></pre>
<p>RandomAccessFile.cpp</p>
<pre><code class="language-cpp">#include &quot;RandomAccessFile.h&quot;
#include &lt;stdlib.h&gt;

// Constructor
RandomAccessFile::RandomAccessFile(const char filename, const char accessmode)
{
	// Hier gibts die Class cast Exception
	this = fopen(&amp;filename, &amp;accessmode);
}
// Destructor
RandomAccessFile::~RandomAccessFile(void)
{
	fclose(this);
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/190002/cast-fehler-von-abgeleiteter-klasse</link><generator>RSS for Node</generator><lastBuildDate>Fri, 25 Sep 2026 17:08:24 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/190002.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 19 Aug 2007 13:43:54 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to cast Fehler von abgeleiteter Klasse on Sun, 19 Aug 2007 13:45:20 GMT]]></title><description><![CDATA[<p>Hiho,<br />
ich versuche gerade mir eine Klasse zu erstellen die mir den Zugriff auf Dateioperationen vereinfachen soll.<br />
Dazu habe ich mir eine Klasse erstellt und diese von FILE abgeleitet.<br />
Im Konstruktor meiner Klasse versuche ich nun diese mit einer Datei zu initialisieren scheitere jedoch an einem cast-Fehler <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":/"
      alt="😕"
    /></p>
<p>Vieleicht kann mir ja von euch einer weiterhelfen, währe sehr dankbar!<br />
Fehlermeldung:<br />
**error C2440: '=' : cannot convert from 'FILE <em>' to 'RandomAccessFile <em>const'<br />
Cast from base to derived requires dynamic_cast or static_cast</em></em></p>
<p>RandomAccessFile.h</p>
<pre><code class="language-cpp">#include &lt;stdio.h&gt;

class RandomAccessFile : public FILE
{
	public:
		RandomAccessFile(const char, const char);
		~RandomAccessFile(void);
}
</code></pre>
<p>RandomAccessFile.cpp</p>
<pre><code class="language-cpp">#include &quot;RandomAccessFile.h&quot;
#include &lt;stdlib.h&gt;

// Constructor
RandomAccessFile::RandomAccessFile(const char filename, const char accessmode)
{
	// Hier gibts die Class cast Exception
	this = fopen(&amp;filename, &amp;accessmode);
}
// Destructor
RandomAccessFile::~RandomAccessFile(void)
{
	fclose(this);
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1347429</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1347429</guid><dc:creator><![CDATA[MasterEvil]]></dc:creator><pubDate>Sun, 19 Aug 2007 13:45:20 GMT</pubDate></item><item><title><![CDATA[Reply to cast Fehler von abgeleiteter Klasse on Sun, 19 Aug 2007 13:48:21 GMT]]></title><description><![CDATA[<p>Ähm... ich bin weißgott kein Experte, aber für mich sieht das nach höllisch schlechtem Klassendesign aus Oo</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1347438</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1347438</guid><dc:creator><![CDATA[The-Kenny]]></dc:creator><pubDate>Sun, 19 Aug 2007 13:48:21 GMT</pubDate></item><item><title><![CDATA[Reply to cast Fehler von abgeleiteter Klasse on Sun, 19 Aug 2007 13:56:37 GMT]]></title><description><![CDATA[<p>Das will ich garnicht abstreiten <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="😃"
    /><br />
ich würde es gerne besser machen aber wie?</p>
<p>Im Grunde möchte ich ein FILE-Objekt welches mir Funktionen zum einfachen lesen schreiben etc. anbietet. Ich dachte ich leite da einfach eine Klasse von FILE ab und füge dieser dann meine speziellen Funktionen hinzu. Ich könnte ja auch noch ein FILE-Objekt in meiner Klasse erstellen aber währe doch unnötig wenn ich das Objekt ableiten kann oder?</p>
<p>Könntest du mir einen Tipp geben wie du es machen würdest?<br />
C++ ist für mich noch völliges Neuland und wenn dann will ich es gleich richtig machen <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>
<p>MFG</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1347458</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1347458</guid><dc:creator><![CDATA[MasterEvil]]></dc:creator><pubDate>Sun, 19 Aug 2007 13:56:37 GMT</pubDate></item><item><title><![CDATA[Reply to cast Fehler von abgeleiteter Klasse on Sun, 19 Aug 2007 14:16:22 GMT]]></title><description><![CDATA[<p>Erstmal, FILE ist keine Klasse, sondern eine einfache struct aus C-Zeiten.<br />
In C++ sollte man std::fstream verwenden.</p>
<p>Zweitens ist &quot;this&quot; bei dir immernoch ein Pointer auf ein RandomAccessFile-Objekt, und kein Zeiger auf ein FILE. Daher rührt der Fehler.<br />
Du würdest dann deinem Objekt einfach einen neuen Speicherbereich zuweisen, und der alte angeforderte Speicher wär verloren.<br />
&quot;this&quot; zu überschreiben, nach meinem Verständnis nicht sehr ansehnlich und oft gefährlich.</p>
<p>Und das zum Ableiten... ich hab irgendwo eine sehr einleuchtende Erklärung gesehen, die beschreibt, wann man ableiten sollte und wann man eine Membervariable benutzen sollte.</p>
<p>Ein aufgelisteter Punkt war dort soweit ich mich erinnere:<br />
- Leite niemals von einer Klasse ab, die keine virtuelle(n) Methode(n) besitzt.</p>
<p>Bitte schlagt mich jetzt nicht, oh ihr, die mehr über Programmierung wisst als ich, ich gebe nur das wieder, was ich noch im Kopf habe *g*</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1347493</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1347493</guid><dc:creator><![CDATA[The-Kenny]]></dc:creator><pubDate>Sun, 19 Aug 2007 14:16:22 GMT</pubDate></item><item><title><![CDATA[Reply to cast Fehler von abgeleiteter Klasse on Sun, 19 Aug 2007 14:26:53 GMT]]></title><description><![CDATA[<p>Mit fstream komm ich schonmal ein ganzes Stück weiter bzw. hat diese Klasse ja schon fast alles was ich brauche <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="🙂"
    /><br />
Ich hatte halt überwiegend nur Beispiele mit FILE gefunden <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":/"
      alt="😕"
    /></p>
<p>Also, Besten Dank für deine Hilfe!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1347533</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1347533</guid><dc:creator><![CDATA[MasterEvil]]></dc:creator><pubDate>Sun, 19 Aug 2007 14:26:53 GMT</pubDate></item></channel></rss>