<?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[Trannung von Header und Daten - Abstraktion]]></title><description><![CDATA[<p>Hallo!</p>
<p>Ich habe ein File, in dem die ersten 54 Bytes den Header darstellen, alle folgenden Bytes repräsentieren die Daten.</p>
<ol>
<li>
<p>Ich möchte jetzt eine Klasse CHeader und CDaten erstellen. Die Klasse CDaten soll abstrakt sein, damit man diese bei anderen Daten austauschen kann. Also z.B. eine abstrakte Klasse CDaten und davon abgeleitet CDatenFormat1. Muss die abstrakte Klasse dann auch ein Interface sein?</p>
</li>
<li>
<p>In der CHeader Klasse lese ich das ganze File ein und speichere hier zuerst mal den Header in einer Member-Variable. Die restlichen Bilddaten möchte ich nun an die Klasse CDatenFormat1 übergeben, nur wie mache ich das damit ich nicht wieder speicher allokieren muss, die Daten aber in der CDatenFormat1 gespeichert werden? Die Daten von dem File in der Klasse nochmal auszulesen ist ja wohl nicht so gut!</p>
</li>
</ol>
<p>Danke!</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/238997/trannung-von-header-und-daten-abstraktion</link><generator>RSS for Node</generator><lastBuildDate>Tue, 22 Sep 2026 15:18:03 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/238997.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 18 Apr 2009 00:28:38 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Trannung von Header und Daten - Abstraktion on Sat, 18 Apr 2009 00:28:38 GMT]]></title><description><![CDATA[<p>Hallo!</p>
<p>Ich habe ein File, in dem die ersten 54 Bytes den Header darstellen, alle folgenden Bytes repräsentieren die Daten.</p>
<ol>
<li>
<p>Ich möchte jetzt eine Klasse CHeader und CDaten erstellen. Die Klasse CDaten soll abstrakt sein, damit man diese bei anderen Daten austauschen kann. Also z.B. eine abstrakte Klasse CDaten und davon abgeleitet CDatenFormat1. Muss die abstrakte Klasse dann auch ein Interface sein?</p>
</li>
<li>
<p>In der CHeader Klasse lese ich das ganze File ein und speichere hier zuerst mal den Header in einer Member-Variable. Die restlichen Bilddaten möchte ich nun an die Klasse CDatenFormat1 übergeben, nur wie mache ich das damit ich nicht wieder speicher allokieren muss, die Daten aber in der CDatenFormat1 gespeichert werden? Die Daten von dem File in der Klasse nochmal auszulesen ist ja wohl nicht so gut!</p>
</li>
</ol>
<p>Danke!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1697600</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1697600</guid><dc:creator><![CDATA[Dax]]></dc:creator><pubDate>Sat, 18 Apr 2009 00:28:38 GMT</pubDate></item><item><title><![CDATA[Reply to Trannung von Header und Daten - Abstraktion on Sat, 18 Apr 2009 09:20:18 GMT]]></title><description><![CDATA[<p>reicht es nicht, zuerst den CHeader einzulesen, den zu interpretierenm und davon abhängig die CDatenFormatX anzulegen und einzulesen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1697644</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1697644</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Sat, 18 Apr 2009 09:20:18 GMT</pubDate></item><item><title><![CDATA[Reply to Trannung von Header und Daten - Abstraktion on Sat, 18 Apr 2009 10:44:44 GMT]]></title><description><![CDATA[<p>volkard schrieb:</p>
<blockquote>
<p>reicht es nicht, zuerst den CHeader einzulesen, den zu interpretierenm und davon abhängig die CDatenFormatX anzulegen und einzulesen?</p>
</blockquote>
<p>Ja genau so sollte es auch sein. Ich bin mir jetzt jedoch nur nicht sicher die ich die Daten an die CDatenFormatx übergeben soll.</p>
<p>Prinzipiell sieht es bei mir so aus. Ich frage mich jetzt halt nur ob dieser temporäre Puffer bei mir wirklich notwendig ist? Ich will halt den Header in CFile, die Daten in CDatenFormat geteilt speichern, aber nur einma aus dem File auslesen und das im CFile.</p>
<p>Verbesserungsvorschläge?</p>
<pre><code>class CFile   {
private:
    header_struct header; //header-daten werden in einem struct verspeichert
    CDatenFormat data; //Klasse mittels starker Aggregation einbinden
public:
    virtual void loadFile(string filename); //Laden eines Files      
}

CFile::loadFile (string filename) {
   ifstream file (filename.c_str(), ios::in|ios::binary|ios::ate);

   //Zuerst header laden
   file.seekg (0, ios::beg);
   file.read ((char*) &amp;header, sizeof(header));

   //Jetzt Daten laden
   int length;
   file.seekg((-header.data_begin), ios::end);
   length = streamoff(file.tellg());
   file.seekg (header.data_begin, ios::beg);

   //Daten in temporären Puffer laden und an andere Klasse, die stark aggregiert wurde einbinden
   [b]char * datenbuffer;[/b]
   datenbuffer = new char [length];
   file.read (datenbuffer, length);

   file.close();

   //Buffer übergeben
   CDatenFormat data(datenbuffer, length);
}

class CDatenFormat   {
private:
   data_struct format_daten;
public:
   CDatenFormat (char* data, length) {
      //Speicher für member-variable format_data allokieren und data zuweisen
   }
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1697683</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1697683</guid><dc:creator><![CDATA[Dax]]></dc:creator><pubDate>Sat, 18 Apr 2009 10:44:44 GMT</pubDate></item></channel></rss>