Il y a des gens qui disent que vous pouvez écrire un objet code orienté dans n'importe quelle langue, et il y a aussi des gens qui disent que vous pouvez écrire un code horriblement déstructuré dans n'importe quelle langue.
Le langage "OO" réel vous fournit une poignée de mécanismes pour implémenter la conception OO: Les langages ont des concepts intégrés pour objet et/ou classes, pour encapsuler du code avec des données, pour l'héritage, etc. C n'a pratiquement rien de tout cela, mais rien ne vous empêche de faire de la programmation OO en C, compte tenu des techniques et de l'autodiscipline (comme votre livre vous le dit sûrement).
Mais voudriez-vous? Mon opinion est la suivante: si vous apprenez juste à faire de la programmation OO, il serait plus logique d'apprendre ceci en étant "tenu par la main" par un langage qui incorpore déjà profondément les concepts. Une langue bien structurée, simple et interactive serait bien pour cela: Avec un libre choix, je recommanderais Ruby, Python ou Groovy. Étant donné une langue avec «magie» intégrée OO, il devient très évident quand vous faites des choses OO et quand vous êtes juste structuré, discipliné et bien organisé. Il peut également y avoir des choses à apprendre lors du passage de C à une autre langue: les points communs, les différences. Certaines personnes recommandent d'apprendre le C++ comme la progression OO naturelle de C. Je ne suis pas du tout d'accord avec cela, parce que je considère le C++ comme un boulonnage plutôt moche des capacités OO sur un langage qui était déjà plus "pratique" que élégant. En passant de la programmation C "standard" à la programmation OO, je pense qu'un programmeur devrait envisager de s'éloigner de la manipulation directe des pointeurs, par exemple, et je trouverais certainement fastidieux de devoir gérer la mémoire pour mes données. Les langages OO modernes l'automatisent, de sorte qu'un programmeur dispose de plus de cellules cérébrales pour les tâches de haut niveau. L'attrait du C++, bien sûr, est la vitesse brute. Parce qu'il peut tomber au même niveau de métal proche de C, il est généralement le plus rapide des langages OO. Tout ce qui est dit: Si vous avez un gros projet où la langue requise est C et que vous voulez utiliser et pratiquer les techniques OO, alors allez-y! Si ce n'est pas le cas, vous pourriez bénéficier d'apprendre OO dans un environnement qui encourage et soutient cela, et peut-être plus tard revenir à C avec votre connaissance de OO. Les techniques enseignées dans le livre auront alors un sens pour vous, et vous serez mieux placé pour décider si vous voulez vraiment le faire en C ou dans une "vraie" langue OO. L'implémentation de la POO en C, est-elle vraiment utilisée?
Il y a quelques réponses vraiment super ici que je suis entièrement d'accord avec! –