###################################################################### Introduction au langage C++ ###################################################################### Les langages en vogue continuent à évoluer, intégrant régulièrement de nouveaux concepts et facilités. Ainsi, les langages Java, C#, C++ ou javascript bénéficient d'une nouvelle version tous les 2 à 3 ans. Ce cours est une introduction à la programmation C++ dans sa version moderne. Il se détache du cours de langage C par l'absence d'utilisation des pointeurs. Ce cours se base sur : * La `référence en ligne du C++ `_ maintenue par des amateurs érudits. * Les `C++ core guidelines `_, site maintenu par Bjarne Stroustrup lui même. * Le `site d'information sur le C++ `_. * La `spécification ISO du C++ `_. * Il n'existe pas de documentation officielle en ligne du langage C++ contrairement à `Python `_, `Java `_ , ou `C# `_. Il vise à vous présenter les concepts et les termes principaux du langage afin de vous fournir des bases solides. Le seul pré-requis est d'avoir déjà pratiqué un langage de programmation de type impératif. Comment tester les exemples sans rien installer ? * `Compilateur C++ en ligne 1 `_ * `Compilateur C++ en ligne 2 `_ * `Compilateur C++ en ligne 3 `_ Les plateformes de développement conseillées : * Linux : compilateur g++ / VSCode * Mac : compilateur Clang / VSCode * W10 : Visual Studio 2017/2019 * W11 : Visual Studio 2017/2019 OU `WSLG `_/Ubuntu/g++ / VSCode Le cours est réalisé entièrement sur machine. Il est divisé en deux parties: * La première est plutôt théorique : vous y découvrirez les bases du C++ * La deuxième est plus pratique : vous y développerez un jeu en C++ en utilisant les éléments vus en première partie L'évaluation de l'unité repose sur deux notes évaluant chacune des deux parties : * Un contrôle sur QCM évaluera la partie théorique * Les développements réalisés pendant la seconde partie feront l'objet d'un *rendu de projet* * La note finale est la moyenne des deux évaluations. Les chapitres de ce cours sont conçus pour être suivis dans l'ordre. .. toctree:: :maxdepth: 2 /01 Chap_IntroCpp/IntroCpp /11 Chap_Debug/Debug /02 Chap_Compilation/Compilation /03 Chap_Operateurs/Operateurs /04 Chap_Type/Type /05 Chap_DefinitionDeclaration/DefinitionDeclaration /06 Chap_Scope/Scope /13 Chap_Instructions/Instructions /07 Chap_ValueReference/ValueReference /08 Chap_Rappel_POO/Rappel_POO /10 Chap_ExPOO/ExPOO /12 Chap_STD/STD /46 ListeDyn/ListeDyn /FinRevision /20 Chap_Visual/Visual /25 G2D/G2D /26 Animation/Animation /27 Astuces/Astuces /30 ProjetFlipper/ProjetFlipper /31 ProjetLabyrinthe/ProjetLabyrinthe /39 FinLaby /40 Conception/Conception /41 Chap_String/String /42 Chap_Stream/stream /43 TextureCouleur/TextureCouleur /44 CompilSeparee/CompilSeparee /45 PathAnim/PathAnim /47 Dictionnaire/Dictionnaire /50 Projet/Cadre du projet /51 IdéesProj/exemples /60 G3D/G3D /61 PR3D/PR3D .. /doc/index .. /32 ProjetLabyrinthe .. /33 ProjetLabyAdvanced .. /40 ProjetGame .. /44 CompilationCroisee/CompilationCroisee