Ton programme Java va immédiatement te dire que ton accès est mauvais, alors qu'en C ou C++, dans le pire cas personne ne te dit quoi que ce soit et tu as l'impression que ça marche
Juste que C++ permet effectivement de programmer à l'ancienne (version C) pour une compatibilité ascendante (avec les risques qui voient avec), mais voila, C++ est critiqué non pas pour C++, mais pour sa compatibilité. Alors, que Java, il faut tout refaire (ou se faire chier pour faire un binding vers la lib C, ça marche certes, mais c'est chiant), ou c'est hyper lent (car Java ne permet pas de déactiver le test out of range, et parfois, ça fait ramer à mort par rapport à C++ et son [] qui ne teste pas, bref, avec C++, tu as le choix).
Bref, non, Java ne protège pas plus que C++, juste Java protège plus que C mal codé (comme C++ protège plus que C mal codé)
[^] # Re: Chacun son style
Posté par Zenitram (site web personnel) . En réponse à la dépêche Naissance d'un géant : Java. Évalué à 7.
Tout pareil avec C++ qu'avec Java:
http://www.cplusplus.com/reference/stl/vector/at/
"vector::at signals if the requested position is out of range by throwing an out_of_range exception."
Juste que C++ permet effectivement de programmer à l'ancienne (version C) pour une compatibilité ascendante (avec les risques qui voient avec), mais voila, C++ est critiqué non pas pour C++, mais pour sa compatibilité. Alors, que Java, il faut tout refaire (ou se faire chier pour faire un binding vers la lib C, ça marche certes, mais c'est chiant), ou c'est hyper lent (car Java ne permet pas de déactiver le test out of range, et parfois, ça fait ramer à mort par rapport à C++ et son [] qui ne teste pas, bref, avec C++, tu as le choix).
Bref, non, Java ne protège pas plus que C++, juste Java protège plus que C mal codé (comme C++ protège plus que C mal codé)