p. 06 Avant de commencer, une rapide présentation du C++
p. 12 Installez vos outils et découvrez les bases du C++
p. 34 Débutez votre projet
p. 56 Abordez les types avancés et les pointeurs
p. 76 Modélisez des objets
p. 98 Ecrivez des classes génériques
p. 114 Finalisez votre programmer
p. 122 C++ Cheatsheet
Le développement logiciel est une science exacte et comme toute science, elle a ses principes inaliénables et ses lois incontournables. Développer un logiciel est un exercice qui requiert de multiples compétences qui vont bien au-delà de la simple connaissance d’un langage de programmation.
Mais cette connaissance est un atout indispensable, sa maîtrise essentielle pour prendre de la distance avec le projet. Il faut savoir ce qu’il est possible de faire et l’avoir pratiqué suffisamment pour être capable de concevoir la solution idéale, la plus simple, la plus directe, la plus élégante, puis organiser son projet en briques indépendantes, réutilisables, testables, en un mot : fiables.
Cette exigence de rigueur, cette hauteur de vue et cette recherche de perfection sont une des caractéristiques de C++. Il ne s’agit pas simplement d’un langage qui s’applique comme une recette de cuisine par des développeurs élevés en batterie – pour paraphraser Jean-Pierre Troll, il s’agit d’un langage qui façonne la pensée du développeur, qui lui inculque les bonnes pratiques, qui lui apprend à lever les yeux hors de son écran et à penser son code avant de l’écrire.
Il a repris de très nombreux concepts nés avant lui et s’est appuyé sur le langage C – langage intemporel, pérenne et ayant fait l’objet d’un précédent hors-série – qui faisait déjà preuve de nombre de qualités citées plus haut. Ce qui le distingue est la grande cohérence avec laquelle l’ensemble des concepts a été intégré et le fait qu’il a su poser un cadre permettant de répondre à des problématiques très complexes sans se dénaturer.
C’est la raison pour laquelle, aujourd’hui encore, il est toujours le langage le plus utilisé dans le milieu industriel (côte à côte avec Java, selon des classements dont la compréhension m’échappe) et qu’il est indétrônable dans des domaines exigeants, comme la programmation temps réel et les jeux vidéos.
Cette pérennité ne doit cependant rien au hasard. Non seulement le langage a été bien été conçu au départ, mais il continue d’évoluer régulièrement – cycle normatif de trois ans – en innovant constamment, en répondant aux exigences de ses utilisateurs, un introduisant de nouvelles pratiques mais surtout, en cherchant à améliorer sa cohérence à chaque cycle.
Ayant la connaissance de ce passif impressionnant, il est inutile de préciser que ce langage a un avenir radieux devant lui et qu’il sera encore, très probablement, un langage très important à mettre sur son CV. Autant dire que son apprentissage est indispensable.
Ce hors-série sera votre guide pour vous permettre de prendre possession des aspects essentiels de C++, que vous soyez sous Linux ou Windows. Vous apprendrez les bases essentielles pour construire une application console, sur lesquelles vous pourrez vous appuyer dans un second temps pour développer des applications graphiques GNOME, KDE ou encore Raspberry PI, Arduino ou même Android ! En effet, le cœur du langage et les techniques que nous verrons resteront les mêmes partout.
Enfin, si vous connaissez déjà Python, vous apprendrez à maîtriser un des langages qui lui est le plus opposé du point de vue des concepts, mais aussi de leur application concrète, puisque les avantages de C++ sont les inconvénients de Python et vice-versa. D’où le fait que ces deux langages travaillent parfaitement bien ensemble et sont régulièrement associés. Autant dire que la connaissance de C++ vous apportera un complément indispensable et une nouvelle compréhension des concepts propres à chaque langage !
Sébastien CHAZALLET & Yohan ANDREOTTI
GNU/Linux Magazine s'adresse aux professionnels et aux particuliers désireux de mieux maîtriser les techniques et problématiques liées à la programmation et à l’utilisation de solutions open source. Tous les deux mois avec ses articles techniques, la publication couvre les thématiques suivantes : programmation système, algo, bas niveau, sécurité du code, développement web...
Cet article va revenir sur certaines notions déjà abordées et vous donner des clés supplémentaires pour les exploiter pleinement.Il donnera également des explications détaillées sur les pointeurs et les références, notions qu'il faut impérativement maîtriser dès maintenant, puisqu'on les utilisera de manière abondante dès le prochain article.Nous introduirons ensuite les conteneurs et en présenterons une sélection de manière détaillée.
Nous arrivons maintenant dans la dernière ligne droite du projet : l'essentiel des classes du jeu est prêt, il ne nous manque plus que la capacité d'afficher les objets et de terminer l'implémentation de la classe principale du jeu, celle qui va orchestrer l'ensemble.