C++ : Apprenez les fondamentaux de la programmation

C/C++ PDF 53 pages 288.24 Ko 7,458
C++ : Apprenez les fondamentaux de la programmation
PDF 53 p. 288.24 Ko
Télécharger

Lien sécurisé — 5 min

À propos de ce cours

Ce document est le support du cours sur le langage C++, considéré comme une extension de C (tel que normalisé par l'ISO en 1990), langage présumé bien connu.
Attention, la présentation faite ici est déséquilibrée : des concepts importants ne sont pas expliqués, pour la raison qu'ils sont réalisés en C++ comme en C, donc supposés acquis. En revanche, nous insistons sur les différences entre C et C++ et notamment sur tous les éléments  orientés objets que C++ ajoute à C.
Cette première section expose un certain nombre de notions qui, sans être directement liés à la méthodologie objets, font déjà apparaître C++ comme une amélioration notable de C.

Programme du cours

Objectifs d'apprentissage

  • Maîtriser les bases du langage C++ et comprendre ses différences fondamentales avec le langage C.
  • Apprendre à utiliser les fonctionnalités orientées objet de C++ (classes, héritage, polymorphisme).
  • Comprendre la gestion de la mémoire en C++ (pointeurs, références, allocation dynamique).
  • Savoir implémenter des templates et exploiter la programmation générique.
  • Développer des applications en utilisant la STL (Standard Template Library).
  • Acquérir les bonnes pratiques de codage en C++ pour écrire des programmes efficaces et maintenables.

Public cible

Ce cours s'adresse aux développeurs ayant déjà une expérience en programmation, notamment en langage C, et souhaitant approfondir leurs compétences avec le C++. Il est également adapté aux étudiants en informatique ou aux professionnels désireux de se familiariser avec les concepts avancés de la programmation orientée objet. Une connaissance préalable des structures de données, des algorithmes de base et de la syntaxe du C est recommandée pour tirer pleinement profit de ce cours.

Introduction au C++

Le C++ est un langage de programmation polyvalent, conçu comme une extension du langage C. Il intègre des paradigmes de programmation impérative, orientée objet et générique. Contrairement au C, le C++ offre des fonctionnalités avancées telles que les classes, l'héritage, le polymorphisme et les templates, permettant une abstraction plus élevée et une meilleure organisation du code. Ce cours mettra l'accent sur ces différences clés, tout en supposant que les concepts de base du C (comme les pointeurs, les structures et la gestion de la mémoire) sont déjà acquis.

Les améliorations du C++ par rapport au C

Le C++ introduit plusieurs améliorations syntaxiques et fonctionnelles par rapport au C. Parmi elles, la déclaration des variables peut se faire n'importe où dans le code (et non plus uniquement en début de bloc), les opérateurs new et delete simplifient la gestion de la mémoire dynamique, et les références offrent une alternative plus sûre aux pointeurs. De plus, le C++ supporte la surcharge de fonctions et d'opérateurs, permettant une expressivité accrue.

Programmation orientée objet en C++

La POO (Programmation Orientée Objet) est un pilier du C++. Les classes permettent de regrouper des données et des méthodes dans une même entité, favorisant l'encapsulation. L'héritage facilite la réutilisation du code, tandis que le polymorphisme permet d'écrire des programmes plus flexibles grâce aux fonctions virtuelles. Ces concepts seront approfondis avec des exemples pratiques pour illustrer leur utilité dans le développement logiciel.

La STL et les templates

La Standard Template Library (STL) est une bibliothèque puissante fournie avec le C++, offrant des conteneurs (comme vector, list, map), des algorithmes et des itérateurs. Les templates, quant à eux, permettent d'écrire du code générique, indépendant du type de données. Cette section expliquera comment exploiter ces outils pour simplifier le développement et améliorer les performances.

Bonnes pratiques et pièges à éviter

Bien que le C++ soit un langage puissant, il comporte des pièges, notamment liés à la gestion manuelle de la mémoire ou aux conversions implicites. Ce cours abordera les bonnes pratiques pour éviter les fuites mémoire, les comportements indéfinis et les erreurs courantes. L'utilisation des smart pointers (comme unique_ptr et shared_ptr) sera également couverte pour une gestion moderne et sécurisée des ressources.

Conclusion

Ce cours offre une transition progressive du C vers le C++, en mettant l'accent sur les fonctionnalités avancées et les meilleures pratiques. À l'issue de cette formation, les participants seront capables de développer des applications robustes et efficaces en tirant pleinement parti des atouts du C++.