2014-05-27T18:26:11
murphy2014-05-27T17:55:19
RaubtierKlar, denn man kann Strings ja ändern.
[...]
Und hundert Punkte bekommt der Kandidat, der auf Anhieb weiß, welche Methoden eines Strings diesen verändern und welche nicht, das ist nämlich alles andere als intuitiv und offensichtlich.
Im Gegensatz zu Perl sagt mir das mein Editor. Und wenn ich einen const string habe, schlägt er mir z.B. reserve gar nicht in der Code-Completion vor. Ausnahmsweise mal ein Punkt an C++ hier!
QuoteQuote[...]
(ab C++11 folgt aus const thread-safe).
Alleine die Tatsache, dass man erwähnen muss, dass das erst ab einer bestimmten Sprachversion gilt, lässt schon wieder tief blicken, wie schlecht designt C++ tatsächlich ist und wie verwirrend für Anfänger.
Naja, du kannst in Perl 5.0 auch kein "say" verwenden. Der vorherige relevante Standard ist C++98, dort hatte man sich auf andere Dinge als Nebenläufigkeit konzentriert. Das Design folgt anderen Zielen.
QuoteAußerdem lässt sich die Aussage, auch wenn sie für const Instanzen von std::string in bestimmten Versionen der STL gelten mag, nicht auf const Instanzen anderer Klassen übertragen.
Weil?
QuoteSo können wir den ganzen Tag weitermachen und all die Stolperfallen in C++ und die Wege um sie herum aufzeigen. Bewiesen ist damit nur eines: Diese Sprache ist mächtig, aber kompliziert richtig zu benutzen.
Ja, richtig. Ich empfehle auch mal
http://channel9.msdn.com/posts/C-and-Beyond-2012-H... - aus zwei Gründen: einmal, weil es da genau um const geht. Und außerdem beweist die Existenz dieses Videos deinen letzten Absatz noch einmal ;-)