Programmation • IoT

Résumé du cours de c++

Chap 0 – Programme Hello World

Ce premier chapitre présente la structure minimale d’un programme C++ et introduit les éléments indispensables pour commencer à programmer.

À travers l’exemple classique « Hello World », nous découvrons la fonction main(), le rôle de la valeur retournée, l’affichage dans la console avec std::cout ainsi que l’utilisation des bibliothèques C++.

Le chapitre se termine par un programme capable de recevoir des arguments lors de son lancement, une première approche des tableaux de chaînes de caractères et des mécanismes qui seront approfondis dans les chapitres consacrés aux fonctions et aux pointeurs.

Chap 1 – Les variables et la mémoire en C++

Ce chapitre introduit une notion fondamentale du langage C++ : le lien entre les variables utilisées dans un programme et leur représentation en mémoire.

Nous découvrons ce qu’est réellement une variable, où elle est stockée, et comment obtenir son adresse mémoire grâce à l’opérateur &. Le mot-clé sizeof permet ensuite de déterminer la quantité de mémoire occupée par un objet.

Ce chapitre présente également la représentation des adresses en hexadécimal, la différence entre le nom d’une variable et son emplacement mémoire, ainsi que les premières notions indispensables avant l’étude approfondie des pointeurs.

Chap 2 – Les références en C++

Ce chapitre présente une notion essentielle du langage C++ : les références. Une référence permet de créer un second nom pour un objet existant, sans effectuer de copie de sa valeur.

Nous découvrons le fonctionnement d’une référence comme alias, son lien avec la mémoire, ainsi que l’utilisation des références constantes avec le mot-clé const. Cette notion permet notamment de transmettre efficacement des objets aux fonctions tout en empêchant leur modification.

Le chapitre compare enfin les références et les pointeurs afin de mettre en évidence leurs différences fondamentales : une référence représente un alias permanent, tandis qu’un pointeur est une variable contenant une adresse mémoire pouvant être manipulée.

Chap 3 – Les pointeurs en C++

Ce chapitre présente l’un des mécanismes fondamentaux du langage C++ : les pointeurs. Un pointeur est une variable particulière dont la valeur est une adresse mémoire, ce qui permet d’accéder directement aux objets stockés en mémoire.

Nous découvrons la création d’un pointeur avec l’opérateur &, l’accès à la valeur pointée grâce à l’opérateur de déréférencement *, ainsi que la possibilité de modifier une variable à travers son adresse. Le chapitre introduit également la notion de pointeur nul avec nullptr.

La dernière partie compare les pointeurs et les références afin de comprendre leurs différences fondamentales : un pointeur possède sa propre mémoire, peut être réaffecté et peut ne désigner aucun objet, tandis qu’une référence reste un alias permanent d’un objet existant.

Chap 4 – Les fonctions en C++

Ce chapitre présente les fonctions, un mécanisme essentiel permettant de structurer un programme C++ en blocs indépendants réalisant chacun une tâche précise. Les fonctions évitent les répétitions, améliorent la lisibilité du code et facilitent la construction de programmes complexes.

Nous découvrons la définition et l’appel d’une fonction, ainsi que la manière dont une fonction peut communiquer avec le programme grâce aux paramètres, aux arguments et aux valeurs de retour. Le rôle de l’instruction return est étudié à travers des exemples de calculs réutilisables.

Le chapitre compare les trois modes de transmission des données : passage par valeur, passage par référence et passage par pointeur. Ces notions permettent de comprendre comment une fonction peut travailler sur une copie ou modifier directement une variable existante.

Enfin, nous abordons l’organisation des programmes avec les prototypes de fonctions, les paramètres par défaut et la surcharge des fonctions. Cette dernière notion illustre le typage fort du C++ et la capacité du compilateur à choisir automatiquement la fonction correspondant aux types des arguments fournis.

Chap 5 – La récursivité en C++

Ce chapitre présente une autre manière de répéter des opérations en C++ : la récursivité. Contrairement aux boucles classiques comme for ou while, une fonction récursive résout un problème en s’appelant elle-même sur une version plus simple du problème initial.

Nous découvrons les principes fondamentaux d’une fonction récursive : le cas de base indispensable qui permet l’arrêt des appels, ainsi que le mécanisme de la pile d’appels qui conserve les informations nécessaires lorsque plusieurs appels de la même fonction sont en attente.

À travers différents exemples, dont le compte à rebours, le calcul d’une somme et les célèbres Tours de Hanoï, nous observons comment un problème complexe peut être décomposé en sous-problèmes identiques mais plus petits. Cette approche permet d’obtenir des programmes souvent très élégants, tout en comprenant leurs limites en termes de nombre d’appels et de mémoire utilisée.

Chap 6 – Les espaces de noms en C++

Ce chapitre présente les espaces de noms (namespace), un mécanisme essentiel du C++ permettant d’organiser un programme et d’éviter les conflits entre des fonctions, variables ou classes portant le même nom.

À travers plusieurs exemples, nous découvrons comment deux éléments identiques peuvent coexister dans des espaces de noms différents grâce à l’opérateur de résolution de portée ::. Nous comprenons également la signification de la notation std::cout et le rôle de l’espace de noms std qui regroupe les éléments principaux de la bibliothèque standard du C++.

Nous apprenons ensuite à créer nos propres espaces de noms afin de regrouper logiquement les fonctions et les classes d’un projet. Enfin, l’instruction using namespace est étudiée avec ses avantages dans les petits programmes et ses limites dans les projets plus importants.

Chap 7 – Les tableaux en C++

Ce chapitre présente les tableaux, une structure fondamentale du C++ permettant de regrouper plusieurs valeurs de même type sous un seul nom. Ils évitent de créer de nombreuses variables individuelles et permettent de traiter efficacement des ensembles de données.

Nous découvrons la déclaration d’un tableau, le rôle des indices et l’accès aux différents éléments grâce à l’opérateur []. Le chapitre explique également pourquoi le premier élément d’un tableau porte l’indice 0 et comment lire ou modifier chaque valeur comme une variable classique.

Les tableaux sont ensuite associés aux boucles afin de parcourir automatiquement leurs éléments. À travers plusieurs applications, nous apprenons à calculer une somme, une moyenne, rechercher une valeur maximale et réaliser différents traitements sur un ensemble de données.

Chap 8 – Les chaînes de caractères en C++

Ce chapitre présente le fonctionnement interne des chaînes de caractères en C++. Contrairement à une idée courante, une chaîne de caractères classique n’est pas un nouveau type de données : elle est simplement un tableau de caractères char dont le dernier élément est le caractère spécial '\0' indiquant la fin du texte.

Nous découvrons comment les caractères sont organisés en mémoire, le rôle des chaînes littérales et la différence entre la taille réelle d’un tableau et la longueur d’une chaîne. Le chapitre montre également comment parcourir une chaîne avec un indice puis avec un pointeur.

Plusieurs fonctions fondamentales sont ensuite développées sans utiliser les bibliothèques existantes : copier une chaîne, comparer deux textes et concaténer deux chaînes. Ces exemples permettent de comprendre concrètement le fonctionnement des tableaux de caractères et préparent l’étude de structures de données plus évoluées.

Chap 9 – Créer de nouveaux types de données en C++

Ce chapitre introduit les structures, qui permettent de regrouper plusieurs variables liées entre elles au sein d’un nouveau type de données. À travers l’exemple d’une date, nous découvrons comment créer une structure, déclarer des variables de ce nouveau type et accéder à ses membres avec l’opérateur ..

Nous étudions ensuite l’initialisation, la copie et l’affectation des structures, ainsi que leur transmission aux fonctions et leur retour comme valeur. Ces notions montrent qu’une structure se comporte comme un véritable type de données, comparable aux types fondamentaux du langage.

Le chapitre présente également les alias de types avec typedef et using, ainsi que les énumérations permettant de définir des ensembles de valeurs symboliques. Les structures constituent une étape essentielle avant l’étude des classes et de la programmation orientée objet.

Chap 10 – Passage des paramètres à une fonction en C++

Ce chapitre présente les différentes manières de transmettre des paramètres à une fonction en C++. À travers l’exemple d’une structure Date, nous comparons le passage par valeur, le passage par référence, le passage par référence constante et le passage par pointeur.

Le passage par valeur crée une copie indépendante de la variable originale, tandis que le passage par référence permet à une fonction de manipuler directement la variable du programme appelant. La référence constante permet de consulter un objet sans effectuer de copie tout en empêchant toute modification accidentelle.

Enfin, le passage par pointeur introduit l’utilisation explicite des adresses mémoire avec les opérateurs & et ->. Le choix du mode de transmission dépend du rôle du paramètre : copier une donnée, modifier un objet, simplement le consulter ou manipuler directement son adresse mémoire.

Contenu

Inscription

×
Cancel