ein object auf die festplatte schreiben?
-
Simon2 schrieb:
Kann sein, dass da eine Differenzierung sinnvoll sein kann.
Allerdings habe ich (wenn ich mich recht entsinne) den Begriff der "Maschinennähe" gar nicht ins Spiel gebracht, sondern hahaha... und das auch nur aus der (richtigen aber in den falschen Zusammenhang gerückten) Wiki-Aussage, dass C++ maschinennahe Programmierung ermögliche.Nein, tntnet hat es getan und du hast ihm widersprochen (erste Seite):
Simon2 schrieb:
tntnet schrieb:
...C++ ist, wie bereits erwähnt näher an der Maschine mit allen seinen Vor- und Nachteilen. ...
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.
Du hast das "näher an der Maschine" von tntnet mit gebunden, bzw. eng verheiratet, gleichgesetzt. Das ist meiner Meinung nach eine falsche Schlussfolgerung.
Grüssli
-
Simon2 schrieb:
hahaha. schrieb:
...Und C++ ist maschinennah, ...
http://de.wikipedia.org/w schrieb:
C++ ermöglicht sowohl die effiziente und maschinennahe Programmierung,...
...
Deine Aussage steht aber gar nicht im Wikipedia-Zitat.
Der link wurde abgeschnitten
http://de.wikipedia.org/wiki/C%2B%2BSimon2 schrieb:
Dravere schrieb:
@Simon2,
Verwechselst du nicht zwei Dinge?
Der Maschine nah <-> An die Maschine gebunden...Kann sein, dass da eine Differenzierung sinnvoll sein kann.
Allerdings habe ich (wenn ich mich recht entsinne) den Begriff der "Maschinennähe" gar nicht ins Spiel gebracht, sondern hahaha...So.
Simon2 schrieb:
tntnet schrieb:
...C++ ist, wie bereits erwähnt näher an der Maschine mit allen seinen Vor- und Nachteilen. ...
Ich empfinde es genau anders herum: ...
Dann hast du wohl gemeint, dass tntnet mit "näher an der Maschine" auch dein komisches "verheiratet" meint.
-
Man könnte fast meinen, ihr versteht euch absichtlich falsch

Ansonsten sehe ich's so wie Simon: Java basiert auf VM und Bytecode, C++ legt sich auf absolut nix fest, schwebt haltlos im Raum; womit Java enger verbunden ist mit der/einer Maschine.
-
hahaha. schrieb:
Simon2 schrieb:
hahaha. schrieb:
...Und C++ ist maschinennah, ...
http://de.wikipedia.org/w schrieb:
C++ ermöglicht sowohl die effiziente und maschinennahe Programmierung,...
...
Deine Aussage steht aber gar nicht im Wikipedia-Zitat.
Der link wurde abgeschnitten
http://de.wikipedia.org/wiki/C%2B%2B...ähhh ... ich hatte schon den richtigen Artikel.
Da steht lediglich, dass C++ "maschinennahe Programmierung ermöglicht", nicht, dass C++ maschinennah sei.Dravere schrieb:
...
...Du hast das "näher an der Maschine" von tntnet mit gebunden, bzw. eng verheiratet, gleichgesetzt. Das ist meiner Meinung nach eine falsche Schlussfolgerung....Das stimmt.
Da hatte ich tntnet wohl mißverstanden.
Nichtdestotrotz sehe ich
- weder, wo C++ maschinennah
- noch, wo es auf eine Plattform festgelegt sei.
(wie gesagt: Der gesamte Standard abstrahiert extrem von der Laufzeitplattform)
Was ich schon sehe ist, dass C++ Sprachmittel bereitstellt, die sich gut in (bestimmte) native Plattformmechanismen übersetzen lassen ... und deshalb das Schreiben "maschinennaher Programme" (will sagen: Programmstruktur im Source ähnelt der Ablaufstruktur innerhalb der Plattform) ermöglicht.
So wie C++ auch templates zur Verfügung stellt, aber deshalb noch keine "template-Sprache ist".Bei Java sehe ich da eine engere Verbindung.
Nicht zuletzt spiegelt sogar der Bytecode (= der "Maschinencode") immer noch sehr viel von der Sourcestruktur wieder (was ja Reflection vereinfacht) ...Badestrand schrieb:
Man könnte fast meinen, ihr versteht euch absichtlich falsch ...
Den Eindruck habe ich langsam auch.
Badestrand schrieb:
...
Ansonsten sehe ich's so wie Simon: Java basiert auf VM und Bytecode, C++ legt sich auf absolut nix fest, schwebt haltlos im Raum; womit Java enger verbunden ist mit der/einer Maschine.Danke.

Gruß,
Simon2.
-
danke jungs für eure hilfe, habs hinbekommen, maps sind jetzt abspeicher- und ladbar

den letzten satz hätte ich wohl weglassen sollen, wenn ich mir ansehen was für eine diskusion ich hier losgetreten habe^^ich hätte aber nochmal eine kurze frage:
ich habe eine klasse CollitionManager, und eine klasse Ball. der Ball ruft aus dem collition manager die methodeint testCollision(Ball *ball);auf. also muss ich in beiden klassen die jeweils andere klasse includieren. nur bekomm ich dann eine endlos schleife beim compilieren oder wenn ich #define & #ifndef benutzen bekomme ich bei einer der klassen fehlermeldung dass ball oder der manager nicht definiert ist!
also mach ich da irgendwas beim includieren falsch (was ich denke) oder geht das mit c so nicht?
den vergleich mit java spar ich mir dieses mal

-
Simon2 schrieb:
Nichtdestotrotz sehe ich
- weder, wo C++ maschinennahstd::cout<<sizeof(int)Gibt dir z.B. unterschiedliche Werte auf unterschiedlichen Maschinen (16/32 Bit) aus. Wenn das nicht maschinennah ist, was ist es dann?
- noch, wo es auf eine Plattform festgelegt sei.
Hab ich nie behauptet.
-
hahaha. schrieb:
std::cout<<sizeof(int)[/cpp]Gibt dir z.B. unterschiedliche Werte auf unterschiedlichen Maschinen (16/32 Bit) aus. Wenn das nicht maschinennah ist, was ist es dann?
Ganz einfach unspezifiziert. Auf meiner 64-Bit-Maschine hier könnte ich auch einen C++-Compiler oder -Interpreten laufen lassen, in welchem ein "int" 100 Bit groß ist.
-
@Vischnu,
http://en.wikipedia.org/wiki/Forward_declarationUnd natürlich das Auftrennen in Header und Source Files

Simon2 schrieb:
- weder, wo C++ maschinennah
Maschinen nah ist es insofern, da du mit "rohem" Speicher herumspielen kannst. Programmiert wird mit sehr Maschinen nahen Konstrukten. Zeiger, Funktionszeiger, Bytestrukturen usw. du kommst mit allen diesen Sachen in C++ deutlich stärker in Berührung, als es zum Beispiel in Java der Fall ist, da Java dir solchen Zugriff nicht gewährt. Java hält dich von der Maschine fern

Allerdings ja, ich würde mit dir auch übereinstimmen, dass Java extrem abhängig von einer Maschine ist.
Simon2 schrieb:
- noch, wo es auf eine Plattform festgelegt sei.
Das hat niemand gesagt, dass hast du irgendwie geschlussfolgert

Grüssli
-
Dravere schrieb:
Allerdings ja, ich würde mit dir auch übereinstimmen, dass Java extrem abhängig von einer Maschine ist.
Naja, Java wurde ja nicht so entwickelt, dass es zur VM passt, sondern die VMs werden entwickelt, dass sie zu Java passen.
-
hahaha. schrieb:
Dravere schrieb:
Allerdings ja, ich würde mit dir auch übereinstimmen, dass Java extrem abhängig von einer Maschine ist.
Naja, Java wurde ja nicht so entwickelt, dass es zur VM passt, sondern die VMs werden entwickelt, dass sie zu Java passen.
Ich habe mit dem Satz ja auch nichts in diese Richtung ausgesagt. Alles was ich gesagt habe ist, dass die Sprache Java abhängig von der Maschine ist. Also dass es eine Maschine braucht, welche den Java-Bytecode versteht.
C++ dagegen ist so aufgebaut, dass sich die Sprache nach der Maschine richtet, auf welcher der Code kompiliert wird. Daher ist C++ unabhängig von der Maschine.Grüssli
-
Dravere schrieb:
hahaha. schrieb:
Dravere schrieb:
Allerdings ja, ich würde mit dir auch übereinstimmen, dass Java extrem abhängig von einer Maschine ist.
Naja, Java wurde ja nicht so entwickelt, dass es zur VM passt, sondern die VMs werden entwickelt, dass sie zu Java passen.
Ich habe mit dem Satz ja auch nichts in diese Richtung ausgesagt. Alles was ich gesagt habe ist, dass die Sprache Java abhängig von der Maschine ist. Also dass es eine Maschine braucht, welche den Java-Bytecode versteht.
C++ dagegen ist so aufgebaut, dass sich die Sprache nach der Maschine richtet, auf welcher der Code kompiliert wird. Daher ist C++ unabhängig von der Maschine.Das Wort abhängig macht aber dann nicht wirklich Sinn. Oder ist C++ vom Compiler abhängig, weil es einen Compiler braucht der C++ versteht?
-
Simon2 schrieb:
audacia schrieb:
...Punctum.
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.
Es war eher im Sinne von "das ist alles" gemeint. Für Diskussionen bin ich meistens offen

Edit: Typographie
-
hahaha. schrieb:
Das Wort abhängig macht aber dann nicht wirklich Sinn. Oder ist C++ vom Compiler abhängig, weil es einen Compiler braucht der C++ versteht?
C++ ist sogar EXTREM vom Kompiler abhängig, da vieles in C++ implementation defined ist. Erzeugter Maschinencode unterscheidet sich von Kompiler zu Kompiler auch bei gleicher Platform.
Und noch was:
Java-Bytecode ist ungleich Javasprache. Es ist also unsinnig, wenn du die Java-Bytecode Abhängigkeit damit probierst zu vergleichen, dass ein Kompiler C++ verstehen muss.Vielleicht nochmals zusammengefasst:
Java ist abhängig von der Maschine, weil die Maschine den Java-Bytecode verstehen muss. Wenn die Maschine keinen Java-Bytecode versteht, dann kannst du mit Java einpacken.
C++ dagegen ist nicht abhängig von der Maschine, weil je nach Maschine anderer Maschinencode erstellt werden kann. Dafür ist C++ abhängig vom Kompiler, da ein entsprechender Kompiler für die Maschine vorhanden sein muss und der Output sich von Kompiler zu Kompiler stark unterscheiden kann.Grüssli
-
hahaha. schrieb:
...
Simon2 schrieb:
- noch, wo es auf eine Plattform festgelegt sei.
Hab ich nie behauptet.
Ich weiß - und auch ich habe nie behauptet, dass Du es behauptet hättest. :p (Ich hoffe, das Spielchen geht jetzt nicht endlos weiter)
Der Begriff der "Plattformfestgelegtheit" ist in der Diskussion zwischen mir und Dravere aufgekommen.hahaha. schrieb:
...
Simon2 schrieb:
Nichtdestotrotz sehe ich
- weder, wo C++ maschinennahstd::cout<<sizeof(int)Gibt dir z.B. unterschiedliche Werte auf unterschiedlichen Maschinen (16/32 Bit) aus. Wenn das nicht maschinennah ist, was ist es dann?
Das ist dieselbe Form von "Maschinennähe", wie dass mein Javaprogramm auf einem 4GHz-Rechner schneller läuft als auf einem 1GHz-Rechner.
Wie ich schon sagte: Ja, es gibt im C++-Sprachmittel, die das Schreiben maschinennaher Programme erleichtern ... das macht aber IMHO die Aussage "C++ ist eine maschinennahe Sprache" nicht richtiger.
... und meine Aussage (um die es eigentlich geht) "C++ ist maschinenunabhängig(er als Java) definiert" nicht "falscher".In c++ ist NICHTS festgelegt, was auf eine konkrete Repräsentation abhebt: Kein Zeichensatz, keine Bytelänge, keine Adresslänge, kein Alignment/Padding, kein function-call-Mechanismus, kein Format für RTTI-Informationen, ...
das Einzige, was mir einfällt, sind marginale Altlasten in <ctime>.
Die Aussage ".. das Ergebnis wird für die zugrundeliegende Maschine passend umgesetzt" bedeutet für mich gerade KEINE Bindung an eine Maschine - weder im Sinne von "Programmstruktur ähnelt technischer Ablaufstruktur" noch im Sinne von "läuft nur auf einer Maschine".Gruß,
Simon2.
-
Dravere schrieb:
...
Allerdings ja, ich würde mit dir auch übereinstimmen, dass Java extrem abhängig von einer Maschine ist...Genau das meine ich ja auch die ganze Zeit ... nur dass ich das anscheinend bis auf Badestrand niemandem vermitteln konnte.
Dravere schrieb:
...
Simon2 schrieb:
- noch, wo es auf eine Plattform festgelegt sei.
Das hat niemand gesagt, dass hast du irgendwie geschlussfolgert

Grüssli
Das habe ich auch nicht geschlussfolgert, sondern in den Zusammenhang Deiner Differenzierung gestellt:
Dravere schrieb:
@Simon2,
Verwechselst du nicht zwei Dinge?
Der Maschine nah <-> An die Maschine gebunden
...Meine Aussage: Egal, um welche Eigenschaft es geht (maschinennah, maschinengebunden) -> ich sehe sie nicht bei C++.
Aber ich kann mich ja einfach mal festlegen: In meinen Augen ist Java deutlich maschinengebundener (an die JavaVM) als C++ (an irgendeine Plattform).
Und sie auch ist maschinennäher (an der JavaVM), weil die Sourcestruktur in jedem Fall sehr der Binärstruktur der Maschine (JavaVM) ähnelt ... wo es in C++ lediglich ermöglicht wird.Natürlich ist es nicht möglich, mit Java auf die "darunterliegende Maschine" (x86) zuzugreifen ... ebensowenig man mit C++ EPROMS brennen kann.

Ich glaube, die grundlegende Uneinigkeit besteht darin, welche Maschine man meint, wenn man von Maschinennähe und -abhängigkeit redet.
Gruß,
Simon2.
-
audacia schrieb:
..Es war eher im Sinne von "das ist alles" gemeint. Für Diskussionen bin ich meistens offen :)...
So habe ich es von Dir auch verstanden, weil ich Dich hier aus Diskussionen kenne....
... ich kenne nur leider (eher in anderen Foren) Andere, die das tatsächlich so wie von mir skizziert verwenden (auch gerne als "FAKT" o.ä. tituliert).Danke nochmal für die Klarstellung.
Gruß,
Simon2.
-
@Simon2: Deine Definition von maschinennah ist mir noch nie begegnet. Hast du dazu noch irgendwelche Quellen außerhalb dieses Forums, (die sogar auch noch sagen das Java maschienennäher ist)?
Das Dravere schreibt ist das was auch ich unter maschinennah verstehe.Dravere schrieb:
Simon2 schrieb:
- weder, wo C++ maschinennah
Maschinen nah ist es insofern, da du mit "rohem" Speicher herumspielen kannst. Programmiert wird mit sehr Maschinen nahen Konstrukten. Zeiger, Funktionszeiger, Bytestrukturen usw. du kommst mit allen diesen Sachen in C++ deutlich stärker in Berührung, als es zum Beispiel in Java der Fall ist, da Java dir solchen Zugriff nicht gewährt. Java hält dich von der Maschine fern

Und das Java genau zu den JVMs passt, ist irgendwie logisch, weil die JVMs für Java geschrieben wurden.
-
hahaha. schrieb:
...Und das Java genau zu den JVMs passt, ist irgendwie logisch, weil die JVMs für Java geschrieben wurden.
Zu welchen Maschinen passt denn C++ Deiner Meinung nach?
Gruß,
Simon2.
-
Zu welchen Maschinen passt denn C++ Deiner Meinung nach?
hihi, streng genommen zu seiner Runtime ... also zur runtime die mit dem compiler mitgeliefert wurde. wobei es mehrere runtimes sein koennen (multithreaded, 64bit support ... etc) und es den spezialfall gibt, das die runtime in das binarie zugelinkt (statisch gelinkt) werden kann.
Oder Meinst du die Sprache an sich ?
die eigentliche Hirarchie ist doch :
C-Runtime(BS spezifisch) + C - Interface zum OS (WinApi, Posix ..)
C++ Runtime(Kompiler Spezifisch)
C++ BinaryAlso laeuft C++ eigentlich auch in Maschine quasi, oder ?
Gabs auch ned Java COmpiler ... also wo die Java binaries gleich mit ihrer runtime zusammen verpackt wurden ? waer aehnlich zum statisch gelinkten C++ Binary.
Wobei die C++ Runtime sicher viel weniger macht, und den Titel VM sicher ned verdient ^^
Ciao ...
-
RHBaum schrieb:
Zu welchen Maschinen passt denn C++ Deiner Meinung nach?
hihi, streng genommen zu seiner Runtime ...
int main() { return 3; }Welche Runtime?
RHBaum schrieb:
...Oder Meinst du die Sprache an sich ? ...
Ich spreche von der Sprache ... so wie hahaha..
Und zu der scheint ja seiner Meinung nach ganz selbstverständlich eine "Maschine zur Sprache" zu geben (natürlich ohne, dass die Sprache mit dieser Sprache "verheiratet" sei ...).Gruß,
Simon2.