J'avais l'habitude d'écrire beaucoup en C ++ il y a entre 8 et 10 ans. Depuis, je suis passé au C # pour des raisons professionnelles. Cependant, de temps en temps, je vois des déclarations comme
"Si vous suivez toujours manuellement les références de pointeur, vous vous trompez"
ou
"C ++ est parfaitement sûr tant que vous utilisez des concepts modernes comme RAII et que vous n'allouez pas de mémoire manuellement comme un développeur C en récupération."
Il s'agissait de la procédure standard il y a dix ans. J'ai vu que C ++ a été considérablement amélioré ces derniers temps; C ++ 0x en particulier semble avoir de nouvelles capacités. Quelle est la meilleure ressource pour un programmeur «C / ancien C ++» pour se familiariser avec les modèles et pratiques C ++ «modernes»?
Réponses:
Cela peut avoir plus à voir avec le matériel pédagogique que la plupart des autres choses, mais il y a 8 à 10 ans, il me semble que la façon dont la langue était utilisée différait beaucoup aujourd'hui. Aujourd'hui, l'accent est davantage mis sur les modèles, la sécurité des types et la programmation générique, alors qu'avant, il y avait plus de peur de tout cela et que les gens se concentraient presque exclusivement sur le C avec les objets.
Le matériel pédagogique change également. Alors qu'avant le livre de début C ++ standard vous conduirait à travers printf, scanf, etc ... vous ne les voyez même pas dans les livres avec une approche moderne.
Certains bons livres sont l'un des livres rouges. C ++ exceptionnel, C ++ plus exceptionnel, métaprogrammation de modèles C ++, conception C ++ moderne, C ++ accéléré ...
Je pense que regarder où je travaille actuellement peut être un bon exemple. Je suis venu ici en utilisant C ++ de manière moderne et il semble que la plupart des développeurs ne savent même pas ce que je fais ni pourquoi. Faire des objets avec operator () en eux par exemple ... J'ai dû commenter l'enfer de chaque occurrence de bind () et finalement on m'a dit de supprimer tout ce code. Je ne sais pas ce que font les initialiseurs ... Ça a été vraiment bizarre et difficile pour moi en fait.
la source
Pour obtenir un aperçu rapide des fonctionnalités modernes présentées assez bien, vous ne vous tromperez pas en consultant la récente présentation de Herb Sutter , "Écriture de code C ++ moderne: comment C ++ a évolué au fil des années" des fonctionnalités C ++ sur // build /.
Il explique pourquoi c'est un meilleur langage que C # (bien sûr - Microsoft change régulièrement de pantalon, et aujourd'hui, ils portent la mode C ++ afin qu'ils battent en l'air, juste comme ils ont fait de l'hypothèse C # comme la réponse à la faim dans le monde une décennie il y a) mais, ce faisant, il décrit tous les bons bits (comme la gestion de mémoire «automatique» et les classes STL) et continue ensuite à parler des nouveaux bits de la norme C ++ 0x.
la source