<?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[ein object auf die festplatte schreiben?]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich hab ein kleines spiel programmiert inklusive map editor. das problem ist, dass ich die maps irgendwie abspichern muss.</p>
<p>als java programmieren würde ich mein map-object einfach mit einem objectStream rausschreiben. habe auch shcon nach sowas in der art gesucht aber leider nichts gefunden.<br />
also wie kann ich ein object in c++ ohne riesen aufwand, mit irgendeiner vorgefertigten klasse auf die platte schreiben , und dann natürlich auch wieder lesen?</p>
<p>ich hab in meinem map object auch einige pointer auf anderen objekte, werde ich dann dort probleme bekommen, oder werden die objekte hinter den pointern mit gespeichert?</p>
<p>vielen dank schonmal für eure hilfe!</p>
<p>mfg vischnu</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/243313/ein-object-auf-die-festplatte-schreiben</link><generator>RSS for Node</generator><lastBuildDate>Sun, 20 Sep 2026 00:33:22 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/243313.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 15 Jun 2009 13:19:02 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to ein object auf die festplatte schreiben? on Mon, 15 Jun 2009 13:19:47 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich hab ein kleines spiel programmiert inklusive map editor. das problem ist, dass ich die maps irgendwie abspichern muss.</p>
<p>als java programmieren würde ich mein map-object einfach mit einem objectStream rausschreiben. habe auch shcon nach sowas in der art gesucht aber leider nichts gefunden.<br />
also wie kann ich ein object in c++ ohne riesen aufwand, mit irgendeiner vorgefertigten klasse auf die platte schreiben , und dann natürlich auch wieder lesen?</p>
<p>ich hab in meinem map object auch einige pointer auf anderen objekte, werde ich dann dort probleme bekommen, oder werden die objekte hinter den pointern mit gespeichert?</p>
<p>vielen dank schonmal für eure hilfe!</p>
<p>mfg vischnu</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1726977</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1726977</guid><dc:creator><![CDATA[Vischnu]]></dc:creator><pubDate>Mon, 15 Jun 2009 13:19:47 GMT</pubDate></item><item><title><![CDATA[Reply to ein object auf die festplatte schreiben? on Mon, 15 Jun 2009 13:24:45 GMT]]></title><description><![CDATA[<p><a href="http://www.cplusplus.com/reference/iostream/ofstream/" rel="nofollow">http://www.cplusplus.com/reference/iostream/ofstream/</a></p>
<p>Das sollte genügen. Steht aber in jedem drittklassigen C++-Buch.<br />
Ein wenig Aufwand ist das zwar schon, aber es bleibt wirklich überschaubar.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1726985</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1726985</guid><dc:creator><![CDATA[Cox]]></dc:creator><pubDate>Mon, 15 Jun 2009 13:24:45 GMT</pubDate></item><item><title><![CDATA[Reply to ein object auf die festplatte schreiben? on Mon, 15 Jun 2009 13:51:01 GMT]]></title><description><![CDATA[<p>Zusätzlich kannst du die Daten der Klasse (alle Attribute) serialisieren und eine Methode der Klasse, nennen wir sie Load() läd die Binärdaten aus der Datei, deserialisiert sie und fügt sie in ihre Attribute. Ganz easy. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1726998</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1726998</guid><dc:creator><![CDATA[Ad aCTa]]></dc:creator><pubDate>Mon, 15 Jun 2009 13:51:01 GMT</pubDate></item><item><title><![CDATA[Reply to ein object auf die festplatte schreiben? on Mon, 15 Jun 2009 16:57:17 GMT]]></title><description><![CDATA[<p>Vischnu schrieb:</p>
<blockquote>
<p>ich hab in meinem map object auch einige pointer auf anderen objekte, werde ich dann dort probleme bekommen, oder werden die objekte hinter den pointern mit gespeichert?</p>
</blockquote>
<p>Ja, da wirst du Probleme bekommen, da die Zeiger bei jedem Programmstart anders aussehen können. Mach es ganz logisch und speichere Verweise zum Beispiel mit Indizes. Referenzierte Objekte musst du natürlich separat speichern.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1727103</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1727103</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Mon, 15 Jun 2009 16:57:17 GMT</pubDate></item><item><title><![CDATA[Reply to ein object auf die festplatte schreiben? on Mon, 15 Jun 2009 18:10:17 GMT]]></title><description><![CDATA[<p>danke für eure hilfe, werde mal ofstream ausprobieren!</p>
<p>wegen den pointern, ich hab folgendes array:</p>
<p>EnviromentObject *object[500];</p>
<p>enviromentObject ist eine abstrakte klasse, dem array weise ich dann pointer auf objekte wie z.b tree, stone etc zu, also klassen die von enviromentObjekt erben.</p>
<p>ich würde gern das array ohne den pointer anlegen dann würde ich die objekte ja direkt im array speichern, aber der compiler meckert bei mir immer das die klasse abstrakt ist!<br />
ist das irgendwie möglich? dann hätte ich lbeim auf die platte schreiben sicher wneiger probleme!</p>
<p>..oh man, man weiss java erst zu schätzen wenn man mit c++ arbeiten muss <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1727153</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1727153</guid><dc:creator><![CDATA[Vischnu]]></dc:creator><pubDate>Mon, 15 Jun 2009 18:10:17 GMT</pubDate></item><item><title><![CDATA[Reply to ein object auf die festplatte schreiben? on Mon, 15 Jun 2009 18:31:41 GMT]]></title><description><![CDATA[<p>Vischnu schrieb:</p>
<blockquote>
<p>ich würde gern das array ohne den pointer anlegen dann würde ich die objekte ja direkt im array speichern, aber der compiler meckert bei mir immer das die klasse abstrakt ist!<br />
ist das irgendwie möglich? dann hätte ich lbeim auf die platte schreiben sicher wneiger probleme!</p>
</blockquote>
<p>Nein, das ist nicht möglich - nicht nur, weil abstrakte Klassen nicht instanziiert werden dürfen. Wie stellst du dir das vor? Jedes Element im Array benötigt gleich viel Platz. Da können nicht plötzlich unterschiedliche Typen drin stehen. Und nein, du hättest dann auch nicht weniger Probleme. Du müsstest trotzdem wieder Fälle unterscheiden und je nach Typ separat speichern.</p>
<p>Wenn dein Design ein wenig durchdacht ist, solltest du über virtuelle Funktionen auf wichtige Eigenschaften gemeinsam über den Basisklassenzeiger zugreifen können. Dann sollte es auch kein Problem sein, eine einheitliche Speicher- und Ladefunktion zu schreiben. Allerdings kann es sein, dass mehrere Container (STL, ähnlich wie Collections in Java) mit jeweiligen Typen besser geeignet wären. Zu den STL-Containern gibt es <a href="http://magazin.c-plusplus.net/artikel/Aufbau%20der%20STL%20-%20Teil%201%3A%20Container" rel="nofollow">hier</a> einen Einführungsartikel.</p>
<p>Hast du eigentlich dran gedacht, deine Objekte mit <code>delete</code> freizugeben? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /><br />
Und virtueller Destruktor ist auch deklariert?</p>
<p>Vischnu schrieb:</p>
<blockquote>
<p>..oh man, man weiss java erst zu schätzen wenn man mit c++ arbeiten muss <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
</blockquote>
<p>Da gibt es nicht wenige Leute, die das Gegenteil behaupten würden. :p</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1727165</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1727165</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Mon, 15 Jun 2009 18:31:41 GMT</pubDate></item><item><title><![CDATA[Reply to ein object auf die festplatte schreiben? on Mon, 15 Jun 2009 19:10:03 GMT]]></title><description><![CDATA[<p>Vischnu schrieb:</p>
<blockquote>
<p>..oh man, man weiss java erst zu schätzen wenn man mit c++ arbeiten muss <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
</blockquote>
<p>Abgesehen von dem was Nexus zu diesem Satz gesagt hat, möchte ich dir noch einen Tipp geben:<br />
C++ ist eine Ebene näher an der Maschine und C++ ist etwas ganz anderes. Erst recht wenn du von Java her kommst, musst du unbedingt vergessen, was du aus Java kennst, denn du kannst es auf C++ so gut wie gar nicht anwenden.<br />
Wenn du immer wieder an Java denkst und überlegst, wie du es in Java gelöst hättest und es dann probierst so in C++ zu lösen, wirst du gehörig auf die Schnauze fallen <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="😃"
    /></p>
<p>Ein gutes C++ Buch hast du hoffentlich?</p>
<p>Grüssli</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1727188</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1727188</guid><dc:creator><![CDATA[Dravere]]></dc:creator><pubDate>Mon, 15 Jun 2009 19:10:03 GMT</pubDate></item><item><title><![CDATA[Reply to ein object auf die festplatte schreiben? on Tue, 16 Jun 2009 00:19:30 GMT]]></title><description><![CDATA[<blockquote>
<p>Vischnu</p>
</blockquote>
<p>Hihi, hier hat wohl jemand einen Superioritätskomplex, wenn das sinnlose Fremdwort gestattet ist <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 />
(EDIT: ist nicht bös gemeint, ich find den Nick nur lustig)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1727298</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1727298</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Tue, 16 Jun 2009 00:19:30 GMT</pubDate></item><item><title><![CDATA[Reply to ein object auf die festplatte schreiben? on Tue, 16 Jun 2009 06:40:09 GMT]]></title><description><![CDATA[<p>Vischnu schrieb:</p>
<blockquote>
<p>..oh man, man weiss java erst zu schätzen wenn man mit c++ arbeiten muss <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
</blockquote>
<p>Das wird zwar wieder ausarten, aber ich kann mich einfach nicht zurück halten. Und gehört ja durchaus auch zum Thema.</p>
<p>In Java unterstützt jedes Objekt reflection. Es führt also Typinformationen mit sich. C++ ist, wie bereits erwähnt näher an der Maschine mit allen seinen Vor- und Nachteilen. Vorteil ist der geringere Overhead bezüglich Laufzeit und Speicher. Nachteil ist eben, dass zur Laufzeit keine Typinformationen zur Verfügung stehen. Daher ist das Speichern und Laden von Objekten mit mehr Aufwand verbunden.</p>
<p>Das Stichwort ist hier Serialisierung. Du musst dein Objekt irgendwie in eine flache Form bekommen, die Du dann in eine Datei schreiben kannst und auch der rückwärtige Weg der Deserialisierung muss implementiert werden.</p>
<p>Da gibt es verschiedene Ansätze und auch Bibliotheken, die einem ein grossteil der Arbeit abnehmen. Das ist sicherlich ein wenig mühsamer als in vielen anderen Sprachen, aber das Ergebnis sind sehr effiziente Programme. Meiner Meinung nach (und zum Glück auch von vielen, die für die Programmierung bezahlen) ist es die Mühe alle mal Wert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1727351</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1727351</guid><dc:creator><![CDATA[tntnet]]></dc:creator><pubDate>Tue, 16 Jun 2009 06:40:09 GMT</pubDate></item><item><title><![CDATA[Reply to ein object auf die festplatte schreiben? on Tue, 16 Jun 2009 07:20:02 GMT]]></title><description><![CDATA[<p>tntnet schrieb:</p>
<blockquote>
<p>...C++ ist, wie bereits erwähnt näher an der Maschine mit allen seinen Vor- und Nachteilen. ...</p>
</blockquote>
<p>Ich empfinde es genau anders herum: Während Java ganz eng mit seiner (virtuellen) Maschine verheiratet ist, ist C++ ein maschinenunabhängiger Sprachstandard. Deswegen kann die Objektpräsentation auf den unterschiedlichen Plattformen variieren und tut das auch.</p>
<p>Nichtsdestotrotz ist C++-RTTI natürlich meilenweit hinter Java-Reflection zurück (auch wenn ich persönlich sie noch nie vermisst habe) und IMHO hätte es C++ gut getan, trotzdem eine <a href="http://de.wikipedia.org/wiki/Bin%C3%A4rschnittstelle" rel="nofollow">ABI</a> zu definieren - am besten als Option.</p>
<p>Gruß,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1727363</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1727363</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Tue, 16 Jun 2009 07:20:02 GMT</pubDate></item><item><title><![CDATA[Reply to ein object auf die festplatte schreiben? on Tue, 16 Jun 2009 07:39:48 GMT]]></title><description><![CDATA[<p>Simon2 schrieb:</p>
<blockquote>
<p>tntnet schrieb:</p>
<blockquote>
<p>...C++ ist, wie bereits erwähnt näher an der Maschine mit allen seinen Vor- und Nachteilen. ...</p>
</blockquote>
<p>Ich empfinde es genau anders herum: Während Java ganz eng mit seiner (virtuellen) Maschine verheiratet ist, ist C++ ein maschinenunabhängiger Sprachstandard. Deswegen kann die Objektpräsentation auf den unterschiedlichen Plattformen variieren und tut das auch.</p>
</blockquote>
<p>Simon2 logik, verstehe sie wer will...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1727378</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1727378</guid><dc:creator><![CDATA[hahaha.]]></dc:creator><pubDate>Tue, 16 Jun 2009 07:39:48 GMT</pubDate></item><item><title><![CDATA[Reply to ein object auf die festplatte schreiben? on Tue, 16 Jun 2009 08:11:31 GMT]]></title><description><![CDATA[<p>hahaha. schrieb:</p>
<blockquote>
<p>...logik, verstehe sie wer will...</p>
</blockquote>
<p>Nö - aber wer es <em>versucht</em>.</p>
<p>Wer natürlich nur seine eigene Meinung bestätigt sehen will, dem gelingt es halt nicht.</p>
<p>Kleiner Ansatz: Zeige mir eine Festlegung im C++-Standard, die auf eine konkrete Maschine zugeschnitten ist.</p>
<p>Gruß,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1727393</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1727393</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Tue, 16 Jun 2009 08:11:31 GMT</pubDate></item><item><title><![CDATA[Reply to ein object auf die festplatte schreiben? on Tue, 16 Jun 2009 08:34:02 GMT]]></title><description><![CDATA[<p>Das hat doch keinen Sinn was du da machst. Du tust so als ob eine virtuelle Maschine und eine echte Hardware das gleiche wären, nur weil er es Maschine genannt hat.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1727402</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1727402</guid><dc:creator><![CDATA[hahaha.]]></dc:creator><pubDate>Tue, 16 Jun 2009 08:34:02 GMT</pubDate></item><item><title><![CDATA[Reply to ein object auf die festplatte schreiben? on Tue, 16 Jun 2009 08:40:47 GMT]]></title><description><![CDATA[<p>Simon2 schrieb:</p>
<blockquote>
<p>Kleiner Ansatz: Zeige mir eine Festlegung im C++-Standard, die auf eine konkrete Maschine zugeschnitten ist.</p>
</blockquote>
<p>Und in Java hat solche Festlegungen? Immerhin gibt es unterschiedliche Virtuelle Maschinen. Die VM in Google Android basiert sogar auf einem ganz anderen Rechenmodell als die standard Sun VM. GCJ und einige andere Compiler erzeugen dir sogar nativen Maschinencode. Das klingt nicht, als wäre Java auf eine feste Maschine zugeschnitten.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1727405</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1727405</guid><dc:creator><![CDATA[Tobiking2]]></dc:creator><pubDate>Tue, 16 Jun 2009 08:40:47 GMT</pubDate></item><item><title><![CDATA[Reply to ein object auf die festplatte schreiben? on Tue, 16 Jun 2009 08:42:50 GMT]]></title><description><![CDATA[<p>tntnet schrieb:</p>
<blockquote>
<p>Da gibt es verschiedene Ansätze und auch Bibliotheken, die einem ein grossteil der Arbeit abnehmen. Das ist sicherlich ein wenig mühsamer als in vielen anderen Sprachen, aber das Ergebnis sind sehr effiziente Programme. Meiner Meinung nach (und zum Glück auch von vielen, die für die Programmierung bezahlen) ist es die Mühe alle mal Wert.</p>
</blockquote>
<p>Meine Erfahrung sagt:<br />
- Für das Persistieren von Objektgraphen überschaubarer Ausmaße ist ein Reflection-basierter Mechanismus ideal. Hier verursacht C++ nur mehr Arbeit ohne Zugewinn.<br />
- Im Falle exorbitant großer Datenmengen (etwa Spielstände in einem 3D-Shooter) ist man ohnehin besser beraten, den persistierenden Code selbst zu schreiben, da gewöhnliche Serialisierungslösungen nicht nur zu langsam, sondern vor allem zu unflexibel sind.</p>
<p>Theoretisch kann ein Reflection-basierter Serialisierer durchaus die Performance eines handgeschriebenen erreichen, insbesondere dann, wenn er Code-Generation zur Laufzeit benutzt (ich glaube, Hibernate tut das).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1727409</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1727409</guid><dc:creator><![CDATA[audacia]]></dc:creator><pubDate>Tue, 16 Jun 2009 08:42:50 GMT</pubDate></item><item><title><![CDATA[Reply to ein object auf die festplatte schreiben? on Tue, 16 Jun 2009 08:45:30 GMT]]></title><description><![CDATA[<p>hahaha. schrieb:</p>
<blockquote>
<p>Das hat doch keinen Sinn was du da machst. Du tust so als ob eine virtuelle Maschine und eine echte Hardware das gleiche wären, nur weil er es Maschine genannt hat.</p>
</blockquote>
<p>Worin soll der Unterschied Deiner Meinung nach bestehen?<br />
Was hindert mich daran, eine Java-Hardware zu bauen? Oder einen x86-Emulator auf einer anderen Plattform ?<br />
Auf welcher anderen Plattform als der JavaVM funktioniert Java (bzw. die Serialisierung, um die es hier geht) plattformunabhängig?</p>
<p>Gruß,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1727410</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1727410</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Tue, 16 Jun 2009 08:45:30 GMT</pubDate></item><item><title><![CDATA[Reply to ein object auf die festplatte schreiben? on Tue, 16 Jun 2009 08:49:23 GMT]]></title><description><![CDATA[<p>Tobiking2 schrieb:</p>
<blockquote>
<p>...Immerhin gibt es unterschiedliche Virtuelle Maschinen. ...</p>
</blockquote>
<p>...und zwischen denen sind Binärcode und serialisierte Daten beliebig austauschbar?</p>
<p>Ich will hier gar kein Java-Bashing betreiben (anscheinend ein Eindruck, der Java-Fanboys aus den Löchern und auf die Palmen getrieben hat <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /> ) - Java ist für viele reale Projekte die bessere Wahl. Aber ein Teil ihrer Stärke ist IMHO gerade durch die Bindung an eine konkrete VM gegeben.<br />
... und ein Teil der Nachteile von C++ gerade dadurch, dass es sich NICHT auf eine Plattform festlegt.</p>
<p>(In anderen Projekten sind das dann eben gerade die Schwäche von Java und die Stärke von C++)</p>
<p>Gruß,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1727412</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1727412</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Tue, 16 Jun 2009 08:49:23 GMT</pubDate></item><item><title><![CDATA[Reply to ein object auf die festplatte schreiben? on Tue, 16 Jun 2009 08:55:45 GMT]]></title><description><![CDATA[<p>Simon2 schrieb:</p>
<blockquote>
<p>hahaha. schrieb:</p>
<blockquote>
<p>Das hat doch keinen Sinn was du da machst. Du tust so als ob eine virtuelle Maschine und eine echte Hardware das gleiche wären, nur weil er es Maschine genannt hat.</p>
</blockquote>
<p>Worin soll der Unterschied Deiner Meinung nach bestehen?<br />
Was hindert mich daran, eine Java-Hardware zu bauen?...</p>
</blockquote>
<p><a href="http://de.wikipedia.org/wiki/Virtuelle_Maschine" rel="nofollow">http://de.wikipedia.org/wiki/Virtuelle_Maschine</a> schrieb:</p>
<blockquote>
<p>Eine virtuelle Maschine, kurz VM, ist ein virtueller Computer. Eine solche Maschine besteht nicht aus Hardware, sondern aus Software.</p>
</blockquote>
<p>Dein Vergleich basiert auf einem flaschen Verständnis von VM.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1727423</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1727423</guid><dc:creator><![CDATA[hahaha.]]></dc:creator><pubDate>Tue, 16 Jun 2009 08:55:45 GMT</pubDate></item><item><title><![CDATA[Reply to ein object auf die festplatte schreiben? on Tue, 16 Jun 2009 08:55:52 GMT]]></title><description><![CDATA[<p>Simon2 schrieb:</p>
<blockquote>
<p>Auf welcher anderen Plattform als der JavaVM funktioniert Java</p>
</blockquote>
<p>CLR, mit Einschränkungen.</p>
<p>Simon2 schrieb:</p>
<blockquote>
<p>(bzw. die Serialisierung, um die es hier geht)</p>
</blockquote>
<p>Gewöhnliche Java-Serialisierung vielleicht nicht, aber wenn du z.B. <a href="http://xstream.codehaus.org/" rel="nofollow">XStream</a> benutzt, bekommst du wunderbar plattformunabhängiges XML. Und für Größeres benutzt man ohnehin Hibernate o.ä..</p>
<p>Simon2 schrieb:</p>
<blockquote>
<p>... und ein Teil der Nachteile von C++ gerade dadurch, dass es sich NICHT auf eine Plattform festlegt.</p>
</blockquote>
<p>Ganz richtig. Allerdings ist Plattformneutralität keine Rechtfertigung dafür, daß C++ nicht einmal die Ansätze eines Reflection-Mechanismus bietet.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1727424</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1727424</guid><dc:creator><![CDATA[audacia]]></dc:creator><pubDate>Tue, 16 Jun 2009 08:55:52 GMT</pubDate></item><item><title><![CDATA[Reply to ein object auf die festplatte schreiben? on Tue, 16 Jun 2009 09:03:30 GMT]]></title><description><![CDATA[<p>BTT: Zum Einlesen der Dateien und Erzeugen der Objekte gebe ich dir die Stichwörter virtueller Konstruktor und <a href="http://www.vincehuston.org/dp/abstract_factory.html" rel="nofollow">Abstract Factory</a>.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1727430</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1727430</guid><dc:creator><![CDATA[Michael E.]]></dc:creator><pubDate>Tue, 16 Jun 2009 09:03:30 GMT</pubDate></item><item><title><![CDATA[Reply to ein object auf die festplatte schreiben? on Tue, 16 Jun 2009 09:04:23 GMT]]></title><description><![CDATA[<p>audacia schrieb:</p>
<blockquote>
<p>Simon2 schrieb:</p>
<blockquote>
<p>Auf welcher anderen Plattform als der JavaVM funktioniert Java</p>
</blockquote>
<p>CLR, mit Einschränkungen....</p>
</blockquote>
<p>Da hast Du aber das wesentliche Attribut in meiner Aussage unterschlagen.</p>
<p>audacia schrieb:</p>
<blockquote>
<p>...</p>
<p>Simon2 schrieb:</p>
<blockquote>
<p>(bzw. die Serialisierung, um die es hier geht)</p>
</blockquote>
<p>Gewöhnliche Java-Serialisierung vielleicht nicht, aber wenn du z.B. <a href="http://xstream.codehaus.org/" rel="nofollow">XStream</a> benutzt, bekommst du wunderbar plattformunabhängiges XML. Und für Größeres benutzt man ohnehin Hibernate o.ä...</p>
</blockquote>
<p>Ich spreche hier allerdings von der Sprache selbst und nicht von irgendwelchen Bibliotheken. In C++ kann ich mein Objekt auch in XML-Serialisieren und dann habe ich es &quot;plötzlich&quot; plattformunabhängig.<br />
(Natürlich habe ich es in C++ mangels Reflection schwerer, im Resultat bleibt es aber dasselbe).</p>
<p>audacia schrieb:</p>
<blockquote>
<p>...Allerdings ist Plattformneutralität keine Rechtfertigung dafür, daß C++ nicht einmal die Ansätze eines Reflection-Mechanismus bietet.</p>
</blockquote>
<p>Ich habe nie von einer &quot;Rechtfertigung&quot; gesprochen und würde es auch nicht wollen. Ich glaube aber, dass es deutlich schwerer ist, Reflection vollkommen ohne Bezug auf ein konkretes Darstellungsformat zu definieren. Ob das der Grund für das Fehlen von Reflection in C++ ist oder das ganz andere Ursachen hat (z.B. eine Paradigmengrenze), weiß ich aber nicht.</p>
<p>Wie schon oben geschrieben:</p>
<p>Simon2 schrieb:</p>
<blockquote>
<p>...Nichtsdestotrotz ist C++-RTTI natürlich meilenweit hinter Java-Reflection zurück (auch wenn ich persönlich sie noch nie vermisst habe) und IMHO hätte es C++ gut getan, trotzdem eine <a href="http://de.wikipedia.org/wiki/Bin%C3%A4rschnittstelle" rel="nofollow">ABI</a> zu definieren - am besten als Option....</p>
</blockquote>
<p>Gruß,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1727431</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1727431</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Tue, 16 Jun 2009 09:04:23 GMT</pubDate></item><item><title><![CDATA[Reply to ein object auf die festplatte schreiben? on Tue, 16 Jun 2009 09:10:06 GMT]]></title><description><![CDATA[<p>hahaha. schrieb:</p>
<blockquote>
<p>Simon2 schrieb:</p>
<blockquote>
<p>hahaha. schrieb:</p>
<blockquote>
<p>Das hat doch keinen Sinn was du da machst. Du tust so als ob eine virtuelle Maschine und eine echte Hardware das gleiche wären, nur weil er es Maschine genannt hat.</p>
</blockquote>
<p>Worin soll der Unterschied Deiner Meinung nach bestehen?<br />
Was hindert mich daran, eine Java-Hardware zu bauen?...</p>
</blockquote>
<p><a href="http://de.wikipedia.org/wiki/Virtuelle_Maschine" rel="nofollow">http://de.wikipedia.org/wiki/Virtuelle_Maschine</a> schrieb:</p>
<blockquote>
<p>Eine virtuelle Maschine, kurz VM, ist ein virtueller Computer. Eine solche Maschine besteht nicht aus Hardware, sondern aus Software.</p>
</blockquote>
<p>Dein Vergleich basiert auf einem flaschen Verständnis von VM.</p>
</blockquote>
<p>Du meinst also, in dem Augenblick, in dem ich eine Java-VM in Hardware gieße, funktioniert Java nicht mehr?<br />
Ist in Java irgendwo festgelegt, dass es eine &quot;Software-Emulationsschicht&quot; geben muss?</p>
<p>Ich glaube, Du hast hier &quot;Definitionsrichtungen&quot; vermischt:<br />
- Wenn jemand fragt: &quot;Was ist denn eine VM?&quot;, ist er mit Deinem Artikel bestens bedient.<br />
- Wenn jemand fragt: &quot;In welcher Umgebung läuft denn Java?&quot;, bringt er nicht weiter.</p>
<p>Gruß,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1727432</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1727432</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Tue, 16 Jun 2009 09:10:06 GMT</pubDate></item><item><title><![CDATA[Reply to ein object auf die festplatte schreiben? on Tue, 16 Jun 2009 09:21:25 GMT]]></title><description><![CDATA[<p>Simon2 schrieb:</p>
<blockquote>
<p>audacia schrieb:</p>
<blockquote>
<p>Simon2 schrieb:</p>
<blockquote>
<p>Auf welcher anderen Plattform als der JavaVM funktioniert Java</p>
</blockquote>
<p>CLR, mit Einschränkungen....</p>
</blockquote>
<p>Da hast Du aber das wesentliche Attribut in meiner Aussage unterschlagen.</p>
</blockquote>
<p>Es war so verlockend <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f921.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--clown_face"
      title=":clown:"
      alt="🤡"
    /></p>
<p>Simon2 schrieb:</p>
<blockquote>
<p>audacia schrieb:</p>
<blockquote>
<p>...</p>
<p>Simon2 schrieb:</p>
<blockquote>
<p>(bzw. die Serialisierung, um die es hier geht)</p>
</blockquote>
<p>Gewöhnliche Java-Serialisierung vielleicht nicht, aber wenn du z.B. <a href="http://xstream.codehaus.org/" rel="nofollow">XStream</a> benutzt, bekommst du wunderbar plattformunabhängiges XML. Und für Größeres benutzt man ohnehin Hibernate o.ä...</p>
</blockquote>
<p>Ich spreche hier allerdings von der Sprache selbst und nicht von irgendwelchen Bibliotheken.</p>
</blockquote>
<p>Die Sprache selbst bietet überhaupt keine Serialisierungsmechanismen; das sind alles Library-Features, die sich auf ein wesentliches Sprachfeature stützen, namentlich Reflection. Ob du nun den in der Java-Bibliothek mitgelieferten Serialisierungsmechanismus oder eine externe Bibliothek wie XStream benutzt, macht da keinen Unterschied.</p>
<p>Simon2 schrieb:</p>
<blockquote>
<p>In C++ kann ich mein Objekt auch in XML-Serialisieren und dann habe ich es &quot;plötzlich&quot; plattformunabhängig.<br />
(Natürlich habe ich es in C++ mangels Reflection schwerer, im Resultat bleibt es aber dasselbe).</p>
</blockquote>
<p>Plattformunabhängigkeit ist nur ein Implementationsaspekt einer Persistenz-Bibliothzek. Der Unterschied zwischen Java und C++ ist hier lediglich, daß du in C++ den Code für die Abbildung eines Objektes selbst schreiben mußt, in Java hingegen nicht. Punctum.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1727442</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1727442</guid><dc:creator><![CDATA[audacia]]></dc:creator><pubDate>Tue, 16 Jun 2009 09:21:25 GMT</pubDate></item><item><title><![CDATA[Reply to ein object auf die festplatte schreiben? on Tue, 16 Jun 2009 09:50:52 GMT]]></title><description><![CDATA[<p>Simon2 schrieb:</p>
<blockquote>
<p>tntnet schrieb:</p>
<blockquote>
<p>...C++ ist, wie bereits erwähnt näher an der Maschine mit allen seinen Vor- und Nachteilen. ...</p>
</blockquote>
<p>Ich empfinde es genau anders herum: Während Java ganz eng mit seiner (virtuellen) Maschine verheiratet ist, ist C++ ein maschinenunabhängiger Sprachstandard. Deswegen kann die Objektpräsentation auf den unterschiedlichen Plattformen variieren und tut das auch.</p>
</blockquote>
<p>Simon2 schrieb:</p>
<blockquote>
<p>hahaha. schrieb:</p>
<blockquote>
<p>Simon2 schrieb:</p>
<blockquote>
<p>hahaha. schrieb:</p>
<blockquote>
<p>Das hat doch keinen Sinn was du da machst. Du tust so als ob eine virtuelle Maschine und eine echte Hardware das gleiche wären, nur weil er es Maschine genannt hat.</p>
</blockquote>
<p>Worin soll der Unterschied Deiner Meinung nach bestehen?<br />
Was hindert mich daran, eine Java-Hardware zu bauen?...</p>
</blockquote>
<p><a href="http://de.wikipedia.org/wiki/Virtuelle_Maschine" rel="nofollow">http://de.wikipedia.org/wiki/Virtuelle_Maschine</a> schrieb:</p>
<blockquote>
<p>Eine virtuelle Maschine, kurz VM, ist ein virtueller Computer. Eine solche Maschine besteht nicht aus Hardware, sondern aus Software.</p>
</blockquote>
<p>Dein Vergleich basiert auf einem flaschen Verständnis von VM.</p>
</blockquote>
<p>Du meinst also, in dem Augenblick, in dem ich eine Java-VM in Hardware gieße, funktioniert Java nicht mehr?<br />
Ist in Java irgendwo festgelegt, dass es eine &quot;Software-Emulationsschicht&quot; geben muss?</p>
<p>Ich glaube, Du hast hier &quot;Definitionsrichtungen&quot; vermischt:<br />
- Wenn jemand fragt: &quot;Was ist denn eine VM?&quot;, ist er mit Deinem Artikel bestens bedient.<br />
- Wenn jemand fragt: &quot;In welcher Umgebung läuft denn Java?&quot;, bringt er nicht weiter.</p>
</blockquote>
<p>Wo war da jetzt was von &quot;wo läuft Java&quot; bei deinem Vergleich?<br />
Du hast einfach so getan, als ob die Maschinennähe von C++ irgendwie was mit VMs zu tun hätte.</p>
<p>Und C++ ist maschinennah, auch wenn du da wieder eine eigene andere Definition von maschinennah hast.</p>
<p><a href="http://de.wikipedia.org/w" rel="nofollow">http://de.wikipedia.org/w</a> schrieb:</p>
<blockquote>
<p>C++ ermöglicht sowohl die effiziente und maschinennahe Programmierung,...</p>
</blockquote>
<p>Du hast irgendwie ne Menge an eigenen Definitionen, die nicht so ganz zu den allgemeinen passen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1727459</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1727459</guid><dc:creator><![CDATA[hahaha.]]></dc:creator><pubDate>Tue, 16 Jun 2009 09:50:52 GMT</pubDate></item><item><title><![CDATA[Reply to ein object auf die festplatte schreiben? on Tue, 16 Jun 2009 11:35:02 GMT]]></title><description><![CDATA[<p>hahaha. schrieb:</p>
<blockquote>
<p>...Wo war da jetzt was von &quot;wo läuft Java&quot; bei deinem Vergleich?...</p>
</blockquote>
<p>Läuft Java denn nicht in einer &quot;Java-VM&quot;?<br />
Ist nicht die komplette Java-Entwicklung daraufhin ausgelegt, in einer solchen zu laufen?<br />
Bezieht Java nicht seine wesestlichen Vorteile aus dieser Tatsache?</p>
<p>Mehr habe ich nicht behauptet und genau daraum dreht sich diese ganze Subdiskussion: &quot;Wo laufen Java-Programme? -&gt; in einer JavaVM&quot;<br />
Die These, die JavaVM sei keine Maschine, kommt von Dir.</p>
<p>hahaha. schrieb:</p>
<blockquote>
<p>...Und C++ ist maschinennah, ...</p>
<p><a href="http://de.wikipedia.org/w" rel="nofollow">http://de.wikipedia.org/w</a> schrieb:</p>
<blockquote>
<p>C++ ermöglicht sowohl die effiziente und maschinennahe Programmierung,...</p>
</blockquote>
<p>...</p>
</blockquote>
<p>Deine Aussage steht aber gar nicht im Wikipedia-Zitat.<br />
In C++ ist selbst ein &quot;Byte&quot; plattformunabhängig definiert ... auch ansonsten gibt es so gut wie keine Maschinenspezifika (ein wenig über Locales, Zeitzonen, In-/Output-Streams, ...). Da ist gar nichts &quot;maschinennah&quot;.</p>
<p>Ich habe eher den Eindruck, dass Du Deinen recht eingeschränkten Begriff von &quot;Maschine&quot; (inkl. den Managementvorstellungen zum Thema &quot;maschinennah&quot; und &quot;plattformunabhängig&quot;) zum Maß aller Dinge erheben möchtest.</p>
<p>Gruß,</p>
<p>Simon2.</p>
<p>P.S.: Das kann natürlich alles nur ein gräßlicher Irrtum von mir sein und Du bist in Wirklichkeit eine große Koryphäe ... aber wenn hier ein Unregistrierter mit einem &quot;Spontannamen&quot; und Post einsteigt, die Provokation in den Mittelpunkt stellen und dann außer ein paar halbgaren Wiki-Halbsätzen nichts beiträgt, habe ich kaum eine Chance, das zu erkennen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1727515</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1727515</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Tue, 16 Jun 2009 11:35:02 GMT</pubDate></item><item><title><![CDATA[Reply to ein object auf die festplatte schreiben? on Tue, 16 Jun 2009 11:25:42 GMT]]></title><description><![CDATA[<p>audacia schrieb:</p>
<blockquote>
<p>...Der Unterschied zwischen Java und C++ ist hier lediglich, daß du in C++ den Code für die Abbildung eines Objektes selbst schreiben mußt, in Java hingegen nicht...</p>
</blockquote>
<p>Wie ich schon schrob: 100% meine Meinung.</p>
<p>OT:</p>
<p>audacia schrieb:</p>
<blockquote>
<p>...Punctum.</p>
</blockquote>
<p>Eigentlich finde ich es unglaublich arrogant, wenn jemand nach seiner These die Diskussion für beendet erklärt .... auch, wenn sich das leider in INetforen so eingebürgert hat.<br />
Aber ich gehe mal davon aus, dass Du das nicht böse meinst. PUNKT! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
<p>Gruß,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1727520</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1727520</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Tue, 16 Jun 2009 11:25:42 GMT</pubDate></item></channel></rss>