Hat "const" in C++ die gleiche Bedeutung wie "static" in Java?
-
Habe gerade erst angefangen, mich mit C++ zu beschäftigen und wollte wissen, ob ich das so richtig verstanden habe.
-
Ich glaube, eher dieselbe Bedeutung wie "final".
-
Nein, überhaupt nicht.
Das (ungefähre!) Äquivalent des Java-static in C++ ist static. Zumindest in gewissen Zusammenhängen, denn in C++ kann static vieles verschiedenes bedeuten, je nach Kontext.
Ein ungefähres Äquivalent von C++-const gibt es in Java nicht. final wurde zwar genannt und hat eine gewisse Ähnlichkeit, aber trifft die Bedeutung von const in C++ nicht so wirklich.
-
SeppJ schrieb:
Ein ungefähres Äquivalent von C++-const gibt es in Java nicht. final wurde zwar genannt und hat eine gewisse Ähnlichkeit, aber trifft die Bedeutung von const in C++ nicht so wirklich.
Was ist der Unterschied?
-
Kenner des C++17 schrieb:
SeppJ schrieb:
Ein ungefähres Äquivalent von C++-const gibt es in Java nicht. final wurde zwar genannt und hat eine gewisse Ähnlichkeit, aber trifft die Bedeutung von const in C++ nicht so wirklich.
Was ist der Unterschied?
In Java gibt es keine final Objekte, nur final Referenzen. C++ kennt beides.
class Point { public int x; } final Point p = new Point(); p.x = 3;
ist überhaupt kein Problem in Java.
struct Point { int x; }; Point const p; p.x = 3;
hingegen schon in C++.
Am ehesten kommen Pointer-Konstanten in C++ an das Java final heran.
Point* const p = new Point(); // new hier nur zum verdeutlichen, keine Stildiskussion bitte. p->x = 3; // Kein Problem. p = new Point(); // nöööp