Salut, j'ai une question, qui paraitra peut-etre evidente à ceux qui connaissent le C et le C++ mais qui est un peu floue pour moi qui ne connait aucun des deux.
Bon c'est pas très facile à expliquer mais je me lance.
J'ai eu aujourd'hui un cours d'intro rapide au C, parce qu'on en aura besoin pour utiliser l'api win32 plus tard.
J'avais déjà le projet depuis un moment d'acheter le livre de Kernighan et Richie sur le C et à la fin du cours j'ai été demandé au prof si le fait que la 2e edition traite de la norme ANSI C90 n'était pas un problème (j'avais lu la critique du livre sur développez mais je ne savais pas trop dans quel mesure ça pouvait être un soucis). Il m'a dit que non mais il m'a alors demandé pourquoi approfondir mes connaissances du C au lieu d'apprendre tout de suite le C++.
Moi je pensais que si je connaissais java, le C++ ne m'était pas utile, du moins dans l'immédiat. Mais il m'a dit que je ne pouvais pas faire en java tout ce que je pouvais faire en C++. Puis il m'a dit que comme le C est un sous ensemble du C++, si j'apprend le C++, automatiquement j'apprend le C en même temps.
Jusque là je voyais plutot le C et le C++ comme deux langages différents.
Enfin je croyais que le C++ était juste une évolution du C en langage OO qui avait gardé la syntaxe du C mais en avait perdu les avantages ( proche de la machine, rapide etc).
Ce que je n'ai pas bien compris c'est qu'il m'a dit que si j'apprend le C++, l'avantage c'est que j'apprend le C en même temps, mais sans toute une partie du langage C qui n'est "plus utilisée" (en fait je ne me souviens plus du terme qu'il a utilisé). Cette de cette phrase qu'est née ma confusion.
Quelle partie du C un prof ou un livre de C++ ne m'apprendrait-il pas?
Il me disait aussi qu'en conséquence, quand j'aurais besoin de faire quelques choses en C pure, il suffirait de ne pas utiliser ce qu'à apporter le C++.
Avec tout ça, si je résume, est-ce qu'on peut dire qu'en fait de nos jours tout le monde fait du C++, mais que quand ces personnes n'utilisent pas les fonctions du C++ ( tout le coté OO ), elles font en fait du C ?
Ou, dit autrement, que tout le monde fait du C, sauf si on utilise les ajouts du C++ ?
(Je me doute bien que ce n'est pas tout à fait exacte mais est-ce que c'est un peu ça l'idée?)
Et donc en même temps, on peut tout à fait ecrire un OS en C++, en utilisant pas la POO, ce qui revient en fait à faire du C?
Finalement le but de toutes ces questions (dont j'ai bien conscience qu'elles doivent vous paraitre tordue) c'est de savoir, si j'apprend le C++, le jour où j'ai besoin de faire du C est-ce que je n'aurai rien d'autre à faire que ne pas utiliser ce qui est apparu avec le C++ ?
(en meme temps si ça se résume à ca, et que j'apprend le C++ directement, le jour où je veux faire du C, comment saurais-je ce qui fait partie du C et ce qui n'en fait pas partie?)
Bon j'espere que tout ce que j'ai écris est compréhensible et que vous pourrez m'éclairer. Merci en tout cas.
Partager