Eine Programmiersprache stellt eine Abstraktion von Programmen dar und ohne eine Notation und Standards kann man sie schlecht als Programmiersprache bezeichnen.
Durch eine Notation wird sie logischerweise plattformunabhängig.
C++ bleibt sowohl unter Linux als auch unter Windows C++, sofern es Compiler gibt, die C++ mit dessen Standards unterstützt.
Nur ist C++' Funktionsbibliothek eingeschränkt, sodass man häufig auf das API des OS zurückgreifen muss. Quellcodes mit OS-abhängigen Funktionen sind immernoch plattformunabhängig und lassen sich mit einem funktionieren Compiler überall kompilieren, nur sind die Kompilate eben nicht mehr plattformunabhängig.
Und genau darum geht es bei Plattformunabhängigkeit. Dass eine Programmiersprache unabhängig ist, ist logisch, nur ist die Frage, ob man das Kompilat auf jedem System einfach so ausführen kann.
Natürlich ist es ein großer Unterschied, dass C++ in Maschinencode kompiliert wird und Java in einen Zwischencode, der dann interpretiert wird, oder in Skriptsprachen direkt der Quelltext interpretiert wird und als Programm dient.
In Hinsicht auf Plattformunabhängigkeit ist diese Eigenschaft jedoch belanglos, da es auf die Ausführbarkeit ankommt.
Und da interpretierte Sprachen komplett vom System abstrahiert werden, lassen sie sich auf jedem System ausführen, das einen entsprechenden Interpreter besitzt.
C++ lässt sich auf anderen Systemen genauso neu kompilieren.
Da C++ aber keine abgeschottete Laufzeitumgebung besitzt wie Skriptsprachen oder Java, stößt man schnell an Grenzen wohingegen Source Codes in Java oder Ruby direkt überall ausgeführt werden können.
Quote:
|
Wird einmal allozierte Speicher dann nicht wieder freigegeben?
|
Wie wär's mit einem Referenzzähler?