Le code C est normalement un code C ++ valide.
Les principaux problèmes avec C ++ l'utilisent de manière incorrecte ( Linus Torvalds le déteste pour cette raison , il avait également d'autres problèmes avec la portabilité des bibliothèques et, par conséquent, il travaille au niveau des systèmes d'exploitation et doit pouvoir exécuter des tâches de manière aléatoire. chip out là-bas).
Par exemple, l'utilisation d'un tableau cstyle [] par rapport à un c ++ std :: vector <> (ou un conteneur similaire) ne présente presque aucun avantage.
Les vecteurs sont typés et peuvent être vérifiés (vous pouvez accéder aux éléments avec get () ou [], même si vous n'utilisez pas la méthode array check, vous pouvez toujours interroger la taille plutôt que de la transporter avec le pointeur).
Mais les vecteurs peuvent être plus lents si, par exemple, vous ne déclarez pas la taille par défaut dans le constructeur. De plus, l'ajout d'éléments à un vecteur peut provoquer des ralentissements s'il nécessite un redimensionnement. C ++ 11 ajoute également de nombreux avantages, tels que l'initialisation uniforme (vous pouvez maintenant déclarer et initialiser des vecteurs en utilisant la même syntaxe) et certains constructeurs de déplacement peuvent vous permettre d'éviter la copie. Vous pouvez même créer vos propres initialiseurs personnalisés (si vous vouliez faire autre chose que d’utiliser malloc pour une raison quelconque).
Bien sûr, si vous avez besoin de redimensionner des éléments, les vecteurs sont toujours plus faciles à utiliser, vous n'avez pas à vous soucier de malloc, de copier manuellement des éléments, etc.
C ++ vous donne un code orienté objet. Une fois compilé, il sera tout aussi efficace car il s’agit en réalité d’une simple abstraction pour les utilisateurs du code. Bien que des choses comme les constructeurs puissent ralentir la création d’objets. Mais vous aurez besoin soit du constructeur pour définir les valeurs par défaut, soit vous pouvez initialiser des objets sans utiliser le constructeur (en laissant de côté les ()).
Mais l'orientation des objets facilite beaucoup la programmation des jeux . Les jeux traitent souvent d'objets.