Bien que les gens semblent aimer se plaindre à propos du C++, je n'ai pas pu trouver beaucoup d'éléments expliquant pourquoi vous voudriez choisir le C plutôt que le C++. Le C ne semble pas recevoir autant de critiques et si le C++ a tous ces problèmes, pourquoi ne pas se limiter au sous-ensemble C ? Quelles sont vos réflexions/expériences ?
Réponses
Trop de publicités?Il y a aussi l'approche adoptée par certains magasins qui utilisent un peu de des fonctionnalités du C++ à la manière du C, mais en évitant celles qui sont répréhensibles. Par exemple, l'utilisation des classes, des méthodes de classe et de la surcharge de fonctions (qui sont généralement faciles à gérer même pour les irréductibles du C), mais pas la STL, les opérateurs de flux et Boost (qui sont plus difficiles à apprendre et peuvent avoir de mauvaises caractéristiques de mémoire).
Parce que vous écrivez pour un système où les ressources sont limitées (comme un système embarqué, ou une sorte de code "bare metal" comme un noyau) et que vous voulez avoir le moins de surcharge possible.
Il y a une raison pour laquelle la plupart des systèmes embarqués n'ont pas de compilateur C++ - ce n'est pas que les gens n'en veulent pas, c'est que faire tenir du code C++ dans un espace aussi réduit est une tâche quasi impossible.
Ce dont le C avait besoin était un meilleur préprocesseur. cfront en était un et ainsi naquit c++
J'utiliserais le C, où le "c++ en tant que préprocesseur" ne serait pas acceptable.
Je suis presque sûr qu'il se trouve au bas de n'importe quelle bibliothèque/framework/toolkit c++ bien écrit, vous trouverez les dirty-old-c ( ou les static casts, ce qui revient au même )
- Jusqu'à il y a quelques années, les compilateurs C++ existants manquaient de fonctionnalités importantes, ou le support était médiocre et les fonctionnalités supportées variaient énormément d'un compilateur à l'autre, ce qui rendait difficile l'écriture d'applications portables.
- En raison de l'absence de dénomination standard des symboles, il est difficile pour les autres langages/applications de supporter directement les classes C++.
- Réponses précédentes
- Plus de réponses