Bonjour,
Je voudrais commencer à programmer en C++ (débuter donc).
Faut-il absolument apprendre le C avant de commencer le C++?
(Quel bouquin me proposez-vous pour débuter ?)
Merci d’avance et bonne journée :king:
Version imprimable
Bonjour,
Je voudrais commencer à programmer en C++ (débuter donc).
Faut-il absolument apprendre le C avant de commencer le C++?
(Quel bouquin me proposez-vous pour débuter ?)
Merci d’avance et bonne journée :king:
Non, tu n'as pas besoin d'apprendre le C.
Pour les livres C++, tu peux consulter ici accompagnés de commentaires.
Tu peux aussi consulter les tutoriels et FAQ également sur ce site.
Bon courage
:merci: Trunks
Certaines personnes (des amis) m’avait dit que c’était indispensable d’apprendre le C pour bien débuter!
Tu me rassures Trunks, parce que ça m’embêtait d’apprendre deux fois (presque) pour la même chose.:aie:
Encore merci et bonne journée:king:
Tu n'as pas plus besoin de connaitre le C avant le C++ que tu n'as besoin de connaitre le B avant le C, ou le latin avant le français.
Pour les livres, cf aussi le sujet épinglé au sujet des meilleurs livres de C++.
Ok désolé c'est fait. :mrgreen:
Encore merci de vos réponses!
Puisque tu poses explicitement la question, il faut savoir que l'apprentissage ou non du C avant le C++ est une question qui divise les opinions. Il y a des gens qui effectivement te jureront qu'il faut d'abord commencer par le C et d'autres qui clameront que la règle numéro 1 est de ne surtout pas le faire.
Ici, on soutient surtout la deuxième option, mais c'est surtout dû au fait que les deux branches sont très spécialisées dans leur domaine, donc très distinctes. Moi, j'ai longtemps prêché pour la première.
Pour reprendre le parallèle de Luc Hermitte, Je ne pense pas que l'on puisse comparer le C++ au C comme on comparerait le C au B ou le français au latin, car le C est loin d'être une langue morte, d'une part, et que la majeure partie du langage C en lui-même (hors bibliothèques) existe tel quel dans le C++.
Moralité : si ton but est d'apprendre le C++ à partir de zéro et que tu sens le C comme un passage obligé et que tu as peur de t'embrouiller entre ce qui est C et C++, apprend directement le C++ avec les cours et tutoriels C++. Si, au contraire, tu veux connaître les deux langages, et qu'en plus tu souhaites être capable de repérer ce qui appartient à l'un ou à l'autre, alors commence par le C, les billes que tu auras acquises te serviront de toutes façons côté C++.
En plus, il est beaucoup plus rapide de faire le tour des notions principales du C que celle du C++ (c'est une autre chose si tu veux te spécialiser, et connaître la norme par cœur). Le truc est qu'étant donné les nouvelles possibilités, la manière d'aborder un problème et de le modéliser est complètement différente.
Le truc est que le C oblige à voir des détails bas niveau dès les premiers chapitres qu'un débutant n'est pas prêt pour voir.
En fait, la partie purement procédurale du C++ équivalente au C est plus simple que le C, même si paradoxalement le C++ est infiniment plus complexe que le C.
Quand à mon parallèle, il est dû que fait que l'approche "C->C++" est désignée par "approche historique", par opposition à la dite "moderne", qui retarde pointeurs et fonctions variadiques.
Même si le but est d'apprendre les 2 langages, je verrai le C après le C++.
Salut,
Donc en gros: les deux langages sont deux langages bien distinct et différant l'un de l'autre, c'est bien sa? (mais qui se ressemble quand même)
Si je dois d'abord passé par le C c'est juste une question de motivation?
Merci de toutes vos réponses et bonne nuit:king:
Les deux langages sont très différents.
Je te demande d'essayer de compiler quelque chose de ce genre avec un compilateur C :
Rajoute à cela les exceptions, les templates, les namespaces, les références, et j'en passe et des meilleures, et tu obtiens un code à 100 000 kilomètres d'un code C. Le fait qu'ils se ressemblent et qu'ils aient une (petite) base commune est comme l'a dit Luc dû à l'histoire, C++ ayant fortement été tiré de C, et d'ailleurs C++ s'appelait à ses prémisses le "C with classes".Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 #include <iostream> using namespace std; class Entier { int n; public : Entier(int n_) : n(n_) { } operator int() const { return n; } // redéfinition des opérateurs +, -, * et / et de leurs homologues +=, -=, *= et /= (les premiers hors de la classe, les autres à l'intérieur }; int main() { Entier e(4); int n = e; cout << e << endl; return 0; }
Je te conseille également d'apprendre C++ avant C, si tu veux apprendre les deux. Sinon, tu peux passer direct au C++, si le C++ est bien ton objectif.
Oui le C++ c'est bien mon objectif!
Merci de toutes vos réponses.:mouarf:
ps: je comprends mieux :yaisse2:
Bonne journée à tous