Blog ENI : Toute la veille numérique !
🐠 -25€ dès 75€ 
+ 7 jours d'accès à la Bibliothèque Numérique ENI. Cliquez ici
Accès illimité 24h/24 à tous nos livres & vidéos ! 
Découvrez la Bibliothèque Numérique ENI. Cliquez ici
  1. Supports de cours
  2. Langage C++ - De l'héritage C au C++ moderne (avec programmes d'illustration) (2e édition)

Langage C++ De l'héritage C au C++ moderne (avec programmes d'illustration) (2e édition)

Informations

Livraison possible dès le 29 avril 2024
  • Personnalisable
Livres rédigés par des auteurs francophones et imprimés à Nantes

Caractéristiques

  • Reliure spirale - 17 x 21 cm (Médian)
  • ISBN : 978-2-409-03895-2
  • EAN : 9782409038952
  • Ref. ENI : RIM2LCPP

Informations

  • Consultable en ligne immédiatement après validation du paiement et pour une durée de 10 ans.
  • Version HTML
Livres rédigés par des auteurs francophones et imprimés à Nantes

Caractéristiques

  • HTML
  • ISBN : 978-2-409-03896-9
  • EAN : 9782409038969
  • Ref. ENI : LNRIM2LCPP
Le C++ fascine par l'infini des réalisations et des manières de programmer qu'il permet. D'une part, il hérite du langage C qui lui procure une base pour tout ce qui concerne l'écriture algorithmique, et d'autre part il est doté de puissants outils de structuration orientés objet. Ce support s'adresse aux personnes qui débutent en programmation avec le langage C++ ou ayant déjà programmé dans d'autres langages. Il tient...
Aperçu du livre papier
  • Niveau Initié à Confirmé
  • Nombre de pages 676 pages
  • Parution avril 2023
  • Niveau Débutant à Initié
  • Parution avril 2023
Le C++ fascine par l'infini des réalisations et des manières de programmer qu'il permet. D'une part, il hérite du langage C qui lui procure une base pour tout ce qui concerne l'écriture algorithmique, et d'autre part il est doté de puissants outils de structuration orientés objet.

Ce support s'adresse aux personnes qui débutent en programmation avec le langage C++ ou ayant déjà programmé dans d'autres langages. Il tient compte des dernières évolutions de C++ et éclaircit la complexité du langage par une exploration systématique de ses composantes natives (algorithmique fondamentale, programmation objet, généricité) auxquelles sont ajoutés quelques éléments sélectionnés parmi les bibliothèques standards (smart pointers ou pointeurs intelligents, conteneurs et contrôle d'erreur avec les exceptions).

La progression pédagogique de l’auteur se déroule en quatre temps.

L’auteur commence par traiter de notions qui concernent l'écriture algorithmique et ses fondamentaux : variables, opérations, structures de contrôle (if, switch, boucles, fonctions, attributs).
Dans un second temps, le lecteur bascule vers la programmation objet avec les structures et les classes puis il se concentre sur la généricité, les bibliothèques personnelles, les modules et les espaces de noms. Ensuite, l'étude des pointeurs, introduite avec les tableaux et les chaînes de caractères, est développée d'abord avec les pointeurs classiques puis avec les pointeurs-objets dits smart pointers. La quatrième et dernière étape vient compléter l'arsenal des outils natifs de la programmation objet avec les concepts d'héritage, de polymorphisme, de virtualité, de classes abstraites et d'interfaces. Pour finir, le livre s’achève sur la gestion des erreurs.

Tout au long du support, l'auteur fournit des exemples de programmes apportant la mise en pratique nécessaire pour s'approprier le langage. Tous les programmes sont en téléchargement sur le site www.editions-eni.fr.
Introduction
  1. L'univers C++
  2. Cartographie pédagogique de la grammaire C++
  3. Organisation du livre
  4. Public visé
  5. Clés pour apprendre
  6. Documentations, versions, environnements
Premiers programmes
  1. C inclus en C++
  2. Premiers programmes
    1. 1. La fonction main() : entrée du programme
    2. 2. "Hello world !" en C
    3. 3. "Hello world !"en C++
  3. Bibliothèques, espaces de noms, instruction using
    1. 1. Bibliothèque <iostream>, directive #include</iostream>
    2. 2. Espace de noms et instruction using
    3. 3. L’espace de noms standard std
    4. 4. Inclusion de bibliothèques C en C++
  4. Activer C++20
Variables simples
  1. Introduction
  2. Hérité du C
    1. 1. Différents types de variables
    2. 2. Déclaration des variables
    3. 3. Affecter et afficher une valeur
    4. 4. Opérateur sizeof
    5. 5. Préfixes 0b, 0x, 0 et séparateur(’)
    6. 6. Suffixes L, LL et f
    7. 7. Caractères, codage ASCII
    8. 8. Renommer des types avec typedef
  3. Apports du C++
    1. 1. Initialisations des variables
    2. 2. Type auto
    3. 3. Opérateur decltype
    4. 4. Opérateur typeid, bibliothèque <typeinfo></typeinfo>
Constantes
  1. Constantes const et constexpr
    1. 1. Hérité du C
    2. 2. Apports du C++
      1. a. Plus de rigueur sur const
      2. b. Valeurs constantes définies à lacompilation : mot-clé constexpr
  2. Énumérations : créations de types enum
    1. 1. Hérité du C
    2. 2. Apports C++
  3. Directive macroprocesseur #define
Affichage et saisie console
  1. Hérité du C
    1. 1. Affichage : fonction printf
      1. a. Chaînes de caractères
      2. b. Convertir des valeurs en caractères avecdes formats
      3. c. Paramétrer l’affichage de printf
    2. 2. Formatage : fonctions sprintf, snprintf,sprintf_s, snprintf_s
    3. 3. Saisie de valeurs : fonctions scanf, scanf_s
  2. Apports C++
    1. 1. Utiliser cout et cin
      1. a. Écrire dans la console avec cout
      2. b. Entrer des valeurs avec cin
      3. c. Contrôle d’erreur simple
    2. 2. Instructions de formatage en sortie
      1. a. Afficher des valeurs booléennes
      2. b. Largeur minimum de l’affichage
      3. c. Alignement des sorties
      4. d. Choisir un caractère de remplissage
      5. e. Afficher ou non les zéros aprèsla virgule
      6. f. Afficher le signe des nombres positifs
Opérations
  1. Hérité du C
    1. 1. Notion d’expression
    2. 2. Opérations arithmétiques
    3. 3. Valeurs aléatoires
      1. a. Avoir des suites différentes
      2. b. Définir une fourchette
    4. 4. Opérations bit à bit
      1. a. ET : opérateur &
      2. b. OU exclusif : opérateur ^
      3. c. OU inclusif : opérateur |
      4. d. Complément : opérateur ~
      5. e. Décalages gauche et droite : opérateurs>> et <<
      6. f. Priorités des opérateurs bit à bit
  2. Apports C++
    1. 1. Surcharger les opérateurs
    2. 2. La bibliothèque <random></random>
Conversions de types
  1. Hérité du C
    1. 1. Le principe
    2. 2. Opérateur de conversion
    3. 3. Exemple : nombre aléatoire avec décimales
  2. Apports du C++
    1. 1. static_cast<type></type>
    2. 2. const_cast<type></type>
    3. 3. reinterpret_cast<type></type>
    4. 4. dynamic_cast<type></type>
Structures de contrôle
  1. Hérité du C
    1. 1. Bloc d’instructions
    2. 2. L’instruction conditionnelle if
    3. 3. Définir une condition
      1. a. Opérateurs de comparaisons
      2. b. L’opérateur unaire NON : !
    4. 4. Le couple d’instructions if-else
    5. 5. La forme contractée du if-else, opérateurconditionnel "?"
    6. 6. La cascade d’instructions if - else if - else
    7. 7. Les tests multiconditions (ET/OU)
      1. a. Conjonction ET : opérateur &&
      2. b. ET avec plus de deux expressions membres
      3. c. Disjonction OU, opérateur ||
      4. d. OU avec plus de deux expressions membres
      5. e. ET prioritaire sur OU
    8. 8. Branchement : switch
    9. 9. Rupture de séquence : goto avec étiquette
    10. 10. Les trois boucles : while, do-while et for
      1. a. Boucle TANT QUE : le while
      2. b. Boucle FAIRE {...} TANT QUE : ledo-while
      3. c. Boucle comptée POUR : le for
      4. d. Boucles imbriquées
    11. 11. Sortie et saut forcés dans une boucle
      1. a. Sortir avec l’instruction break
      2. b. Passer à l’itération suivante avecl’instruction continue
      3. c. Sortir d’une ou de plusieurs boucles imbriquéesavec l’instruction goto
  2. Apports du C++
    1. 1. Condition if ou else-if marquée constexpr
    2. 2. Boucle for (:) "pour chaque"
Fonctions
  1. Hérité du C
    1. 1. Principe
    2. 2. Fonction sans retour et sans paramètre
    3. 3. Déclaration et visibilité d’unefonction
    4. 4. Fonctions avec paramètres
      1. a. Copie de valeurs et passage par valeur
      2. b. Déplacer le curseur en écriturede la fenêtre console
      3. c. Changer la couleur des caractères
      4. d. À propos de la couleur en console
      5. e. Afficher une lettre à une position et d’unecouleur donnée dans la console
      6. f. Tracer une ligne horizontale
      7. g. Le programme complet
    5. 5. Fonctions avec retour
      1. a. Retourner un nombre aléatoire entre 0 et1
      2. b. Retourner le résultat d’un jeté dedeux dés à six faces
      3. c. Programme complet
      4. d. Types des valeurs de retour
    6. 6. Fonctions avec retour et avec paramètres
      1. a. Conversion en chiffres romains
    7. 7. Fonction et qualificatif static
      1. a. Qualificatif static et fonctions
    8. 8. Fonctions récursives
    9. 9. Nommer les fonctions
      1. a. Contraintes syntaxiques
      2. b. Sens des noms choisis
      3. c. Normes et styles pour la mise en forme du code source
  2. Apports du C++
    1. 1. Fonctions embarquées "inline"
    2. 2. Fonctions constantes marquées constexpr
    3. 3. Fonctions marquées const
    4. 4. Fonctions déclarées noexcept
    5. 5. Valeurs par défaut de paramètres
    6. 6. Surcharge des fonctions
    7. 7. Références et passage par référence
    8. 8. Expression lambda (fonction anonyme)
      1. a. Principe
      2. b. Syntaxe générale
      3. c. Les clauses de capture
      4. d. Clauses de capture multiples
      5. e. Spécification mutable
      6. f. Listes de paramètres
      7. g. Spécification d’une exception
      8. h. Le type de retour
      9. i. Lambda constexpr
      10. j. Récupérer une lambda et appels possibles
      11. k. Quelques précisions
    9. 9. Fonction operator et surcharge des opérateurs
    10. 10. Fonctions génériques (template,auto)
Précisions sur les variables, attributs
  1. Précisions sur les variables
    1. 1. Visibilité et durée de vie d’unevariable
    2. 2. Masquage d’une variable
    3. 3. Variable static
  2. Attributs
    1. 1. Principe et syntaxe
    2. 2. Exemples d’utilisation
      1. a. Expérimentation GNU
      2. b. Expérimentation GSL Microsoft
    3. 3. Attributs standards
      1. a. [[noreturn]] (depuisC++11)
      2. b. [[fallthrough]] (depuisC++17)
      3. c. [[deprecated]], [[deprecated("reason")]] (depuisC++14)
      4. d. [[nodiscard]] (depuisC++17) [[nodiscard("reason")]] (depuisC++20)
      5. e. [[maybe_unused]] (depuisC++17)
      6. f. [[likely]] et [[unlikely]] (depuisC++20)
      7. g. [[no_unique_address]] (depuisC++20)
Structures et classes
  1. Hérité du C
    1. 1. Principe de la structure
    2. 2. Disposer d’une structure
      1. a. Définir un type de structure
      2. b. Déclarer une variable structure
      3. c. Initialiser à la déclaration
      4. d. Accéder aux éléments avecl’opérateur point
      5. e. Copier deux structures
    3. 3. Structures et fonctions
      1. a. Fonction d’initialisation d’une entité
      2. b. Fonctions d’affichage et d’effacement
      3. c. Fonction pour avancer
      4. d. Boucle événementielle
      5. e. Contrôle du rythme de l’animation
      6. f. Rendre invisible le curseur en écriture
      7. g. Démo entité mobile
    4. 4. Structures imbriquées
  2. Apports du C++ : la structure devient une classe
Classes
  1. De la structure à la classe
    1. 1. Des droits d’accès : public,protected, private
    2. 2. Des fonctions membres
      1. a. Cas général
      2. b. Fonctions membres déclarées const
    3. 3. Une initialisation renforcée
      1. a. Initialisations à la déclaration
      2. b. Initialisations par défaut dans la classe
    4. 4. Des constructeurs et des initialiseurs
      1. a. Initialiser avec des constructeurs
      2. b. Constructeur par défaut
      3. c. Initialisations contraintes par les constructeursexistants
      4. d. Constructeurs avec initialiseurs
      5. e. L’initialiseur initialise les constantes
    5. 5. Le pointeur this
    6. 6. Un programme C muté objet C++
      1. a. Réécriture des entitésmobiles
      2. b. Amélioration du programme
    7. 7. Que dire des structures en C++ ?
      1. a. Des aspects pratiques
      2. b. Réfléchir l’interface des objets
  2. Accesseurs (property en anglais)
    1. 1. Lire une variable private ou protected
    2. 2. Modifier une variable private ou protected
    3. 3. Intérêt d’un appel de fonction
  3. Qualificatif static dans une classe
  4. default et delete pour les fonctions spéciales de classe
    1. 1. Fonctions spéciales
    2. 2. Utiliser default (rappel et précision)
    3. 3. Utiliser delete
  5. Surcharge des opérateurs
    1. 1. Principe
    2. 2. Fonction operator hors classe
      1. a. Exemple addition : operator+
      2. b. Exemple décalage à gauche :operator<<
    3. 3. Fonction operator dans une classe
      1. a. operator+ sans retour
      2. b. operator+ avec retour de l’objet courant(*this)
      3. c. opérator+ avec retour d’un nouvelobjet résultant
    4. 4. Transformer un objet en une fonction (objet fonctionou fonction objet)
    5. 5. Utiliser l’opérateur bool
  6. L’instruction friend ("ami")
Unions, unions illimitées
  1. Principe
  2. Union de structures
  3. Union discriminée
  4. Union illimitée (C++11)
Généricité, template, auto
  1. Principe du template
  2. Template de fonction
    1. 1. Définir une fonction générique
    2. 2. Fonction avec plusieurs types génériques
    3. 3. Évaluation des types génériques à lacompilation
    4. 4. Expressions lambda et template
    5. 5. Template pour passer des valeurs
  3. Template de classe
    1. 1. Syntaxe
      1. a. Syntaxe générale
      2. b. Syntaxe des constructeurs
      3. c. Syntaxe avec plusieurs types génériques
      4. d. Déduction de type à l’initialisation
      5. e. Types par défaut
      6. f. L’instance du template influence le type de la classe
    2. 2. Paramétrages
      1. a. Paramétrage avec des valeurs
      2. b. Template en paramètre de template
      3. c. Spécialiser une fonction pour un type donné
      4. d. Spécialiser une classe complète
      5. e. Spécialiser une classe avec plusieurs typesgénériques
      6. f. Paramétrage avec des objets fonctions
  4. Template variadique et paquet de paramètres
    1. 1. Principe : l’opérateur variadique(…)
    2. 2. Template variadique de fonction
      1. a. Cas général
      2. b. Itérations simplifiées (fold expression,C++17)
      3. c. Deux paramètres variadiques
    3. 3. Template variadique de classe
  5. Utilités standards à base de templates
    1. 1. La classe bitset
    2. 2. La classe tuple<…>
    3. 3. La classe pair<>
    4. 4. Alternatives à l’union
      1. a. La classe variant
      2. b. La classe optional
      3. c. La classe any
    5. 5. La classe std::function<>
  6. Concepts (C++20)
    1. 1. Définir un concept
    2. 2. L’expression requires
      1. a. Exemple d’utilisation sans paramètre
      2. b. Exemple d’utilisation avec paramètres
    3. 3. Établir des contraintes
      1. a. Conjonction ET (&&)
      2. b. Disjonction OU (||)
  7. Spécification auto
    1. 1. Principes généraux
      1. a. Variables simples auto
      2. b. Listes auto
    2. 2. Templates et auto
      1. a. Spécification decltype(auto)
      2. b. Comparaison entre auto et template
      3. c. Utilisation de auto dans un template
Bibliothèques, modules et espaces de noms
  1. Créer une bibliothèque classique (.h)
    1. 1. Contenu du fichier outils.h
    2. 2. Contenu du fichier outils.cpp
    3. 3. Contenu du fichier main.cpp
    4. 4. Problèmes de redéfinitions, instructionextern
  2. Espaces de noms (namespace)
    1. 1. Cartographier du code
    2. 2. Accéder au contenu
    3. 3. Répartition sur plusieurs fichiers
      1. a. Espace de noms dans une bibliothèque
      2. b. Espace de noms réparti entre plusieurs fichiers
      3. c. Espace de noms ToutpourlesChiens réorganisé
    4. 4. Imbriquer des espaces de noms
    5. 5. Espaces de noms inline
    6. 6. Espace de noms anonymes
    7. 7. Remplacer un nom trop long par un alias
  3. La directive using
    1. 1. Faciliter l’accès à un espace denoms
    2. 2. Constituer un alias de type
  4. Modules (C++20)
    1. 1. Principe
    2. 2. Créer une unité d’interface de module(.ixx)
    3. 3. Définir le contenu du module
    4. 4. Importer le module dans un fichier source
    5. 5. Utiliser des bibliothèques standards dansun module
    6. 6. Utiliser une bibliothèque personnelle dansun module
    7. 7. Éléments non exportables dans unmodule
    8. 8. Partitionner un module
    9. 9. Espaces de noms dans un module
    10. 10. Créer un fichier d’implémentationde module
    11. 11. Création d’un module Outils (version 1)
    12. 12. Création d’un module Outils (version 2)
    13. 13. Modules ou bibliothèques ?
  5. Précision sur la liaison entre C++ et C
Tableaux statiques, introduction conteneurs
  1. Hérité du C
    1. 1. Principe du tableau
    2. 2. Disposer d’un tableau
      1. a. Définir et déclarer un tableau
      2. b. Des constantes pour les tailles
      3. c. Accéder aux éléments dutableau avec l’opérateur [ ]
      4. d. Débordement de tableau
      5. e. Parcourir un tableau avec une boucle for
      6. f. Initialiser un tableau à la déclaration
    3. 3. Tableaux à plusieurs dimensions
      1. a. Matrice à deux dimensions
      2. b. Tableaux à n dimensions
      3. c. Initialiser à la déclaration
      4. d. Parcourir un tableau à plusieurs dimensions
    4. 4. Tableaux en paramètre de fonctions
  2. Apports du C++
    1. 1. Boucle for (:) "pour chaque"
    2. 2. Récupérer une liste variadique d’élémentsdans un tableau statique
    3. 3. Tableaux d’objets, exemple fourmilière (version1)
    4. 4. Tableau dans une classe, fourmilière (version2)
      1. a. Paramétrer la classe
      2. b. La classe fourmilière
    5. 5. Tableau dans une classe, exemple pile générique
      1. a. Création de la pile
      2. b. Tri paramétrable de la pile (objet fonction)
      3. c. Spécialisation sur un type
  3. Introduction des conteneurs
    1. 1. La classe array
    2. 2. La classe vector
    3. 3. La classe list
    4. 4. Contenus variadiques
    5. 5. Boucle for_each de la bibliothèque<algorithm></algorithm>
Chaînes de caractères, la classe string
  1. Hérité du C
  2. Apports du C++ : la classe string
Pointeurs
  1. Principes généraux
    1. 1. Adresse et mémoire
    2. 2. Une variable pointeur
    3. 3. Quatre opérateurs dédiés
    4. 4. Cinq utilisations classiques
  2. Hérité du C
    1. 1. Déclarer un pointeur dans un programme
    2. 2. Opérateur adresse : &
    3. 3. Opérateur étoile : *
    4. 4. Opérateur flèche : ->
    5. 5. Opérateur crochets : [ ]
    6. 6. Priorité des quatre opérateurs
    7. 7. Pointeurs et constantes
      1. a. Pointeur variable sur un objet constant
      2. b. Pointeur constant sur un objet variable
      3. c. Pointeur constant sur un objet constant
    8. 8. Le pointeur générique void*
    9. 9. Pointeurs de fonction
      1. a. Une fonction est une adresse
      2. b. Reconnaître le type d’une fonction
      3. c. Appeler une fonction via un pointeur du bon type
      4. d. Cast nécessaire si le pointeur est un void*
      5. e. Pourquoi des pointeurs de fonction ? Les « callbacks »
  3. Apports du C++
    1. 1. Un souci de rigueur
      1. a. Plus de rigueur
    2. 2. Opérateurs new et delete, new[ ] etdelete[ ]
      1. a. Principe
      2. b. Respecter les couples new-delete et new[]-delete[]
      3. c. Allocation d’un tableau de 0 élément ?!
      4. d. Précisions sur l’opérateur new
    3. 3. La valeur nullptr
    4. 4. Type référence & (pointeur constantet simplifié)
      1. a. Principe
      2. b. Une référence est constante
      3. c. Référence déclaréeconst
      4. d. Connaître la valeur de la référence
    5. 5. Retourner une référence
      1. a. Piège à éviter
      2. b. Masquer un tableau avec une fonction
    6. 6. Type référence && (Rightvalue)
      1. a. Des catégories d’expressions
      2. b. lvalues (objets persistants) et rvalues (objets temporaires)
      3. c. Affectations d’objets temporaires rvalues
      4. d. Objets rvalues passés en paramètrede fonction
      5. e. Remarque : une ambigüité possible
      6. f. Déclarateur de référencervalue : &&
      7. g. Référence rvalue && en paramètrede fonction
      8. h. Référence rvalue && en paramètrede constructeur
    7. 7. Conversions en rvalue
      1. a. Un static_cast<>
      2. b. La fonction de déplacement std::move
      3. c. La fonction de transfert std::forward<>
      4. d. Situation de conversion implicite de rvalue(&&) à lvalue(&)
      5. e. Liste variadique et transfert parfait
    8. 8. Spécificateur decltype et références
Pointeurs et références dans la classe
  1. Introduction
  2. Le destructeur
    1. 1. Les éléments non dynamiques s’autodétruisent(rappel)
    2. 2. Problème des éléments dynamiquesperdus en mémoire
    3. 3. Écrire un destructeur des élémentsdynamiques
    4. 4. Appels explicites du destructeur
    5. 5. Destructeur appelé avec delete
  3. Constructeur de copie
    1. 1. Principe
    2. 2. Copier un objet à la déclaration
    3. 3. Copier des objets possédant des donnéesdynamiques
      1. a. Problème des données dynamiques
      2. b. Interdire la copie
      3. c. Implémenter un constructeur de copie
  4. Constructeur de déplacement
    1. 1. Principe
    2. 2. Possible avertissement noexcept
    3. 3. Constructeur de déplacement avec donnéesdynamiques
  5. Surcharge des opérateurs et données dynamiques
    1. 1. Affectation de copie (operator=)
    2. 2. Affectation de déplacement (move)
    3. 3. Surcharge operator+
  6. Questions diverses
    1. 1. Spécialiser une classe génériqueen pointeur
    2. 2. Créer un singleton
    3. 3. Références dans une classe
Pointeurs-objets ou "smart pointers"
  1. Introduction
    1. 1. La bibliothèque memory
    2. 2. Transformer un pointeur en objet
  2. La classe std::unique_ptr
    1. 1. Expérimentation du pointeur unique
    2. 2. Survol du contenu principal
      1. a. Constructeurs
      2. b. Destructeur
      3. c. Six surcharges d’opérateurs
      4. d. Cinq fonctions membres
      5. e. Quatre fonctions hors classe
  3. La classe std::shared_ptr
    1. 1. Expérimentation du pointeur partagé
    2. 2. Survol du contenu principal
      1. a. Constructeurs
      2. b. Destructeur
      3. c. Six surcharges d’opérateurs
      4. d. Cinq fonctions membres
      5. e. Fonctions hors classe
      6. f. Fonctions hors classe de conversion
  4. La classe std::weak_ptr
    1. 1. Expérimentation du pointeur "simple observateur"
    2. 2. Survol du contenu principal
      1. a. Constructeurs
      2. b. Destructeur
      3. c. Six fonctions membres
      4. d. Surcharge opérateur =
  5. Allocateur de mémoire : la classe std::allocator
Pointeurs, utilisations classiques
  1. Introduction
  2. Pointeur en paramètre (passage par référence)
    1. 1. Expérimentation avec pointeur classique
    2. 2. Simplification de l’écriture avec des référencesC++
    3. 3. Tableau en paramètre
      1. a. Tableau à une dimension
      2. b. Tableaux à plusieurs dimensions
  3. Allocation dynamique et tableaux
    1. 1. Tableau de pointeurs
    2. 2. Allocation d’un tableau à une dimension
    3. 3. Allocation d’un tableau à plusieurs dimensions
      1. a. Allocation d’une matrice de int
      2. b. Allocation d’une forme à six dimensions depoints
    4. 4. Quelques pièges classiques de l’allocationdynamique
  4. Relier des objets
    1. 1. Associer deux types structures style C
      1. a. Structures Avion et Pilote
      2. b. Avion ou pilote existent-ils ?
      3. c. Avion ou pilote sont-ils libres ?
      4. d. Relier avion et pilote
      5. e. Délier un avion et un pilote
      6. f. Constructeurs Avion et Pilote
      7. g. Afficher Avion et Pilote
      8. h. Détruire un Avion ou un Pilote
      9. i. Code complet, main action
    2. 2. Associer des classes de même type
    3. 3. Élaborer une liste, fourmilière(version 3)
Associations entre classes
  1. Introduction
  2. Principes des associations pour les relations entre objets
    1. 1. Association simple
    2. 2. Agrégation
    3. 3. Composition
    4. 4. Problème syntaxique en C++
  3. Associations simples : messages entre objets
    1. 1. Liaison non réciproque entre deux objets
    2. 2. Liaison réciproque entre deux objets
  4. Agrégations : coopération entre objets
    1. 1. Liaison à sens unique (exemple guitare, guitariste)
    2. 2. Partage d’objets pointés (plusieurs musiciens,une guitare)
      1. a. Musiciens simultanés
      2. b. Plusieurs musiciens successifs
  5. Liaisons réciproques entre objets
    1. 1. Problème de syntaxe
    2. 2. Déclaration de type incomplet
    3. 3. Limite du type incomplet
    4. 4. Résolution du problème
    5. 5. Exemple Terminator
  6. Composition : dépendance entre objets
    1. 1. Choisir entre agrégation ou composition
    2. 2. Techniques envisageables
    3. 3. Pointeur d’objet en propriété
    4. 4. Objet en propriété
    5. 5. Référence d’objet en propriété
Héritage
  1. Principe
  2. Définir une classe dérivée
  3. Appeler explicitement un constructeur de la classe de base
  4. Redéfinition de données ou de fonctions
  5. Spécifier un membre de la classe de base
  6. Droits d'accès locaux de la classe héritée
  7. Droits d'accès globaux de la classe héritée
  8. Héritage multiple
    1. 1. Principe et syntaxe
    2. 2. Exemple : InDominusRex
    3. 3. Relations transversales dans un arbre de classes
    4. 4. Héritage multiple avec une base virtuelle
  9. Comment identifier un héritage
    1. 1. Distinction entre héritage et association
    2. 2. Distinction entre attributs et nouvelle classe
Polymorphisme et virtualité
  1. Principe
  2. Accès pointeurs limité par son type
  3. Autorisation d'accès pour les fonctions virtuelles
  4. Destructeur virtuel
  5. Intérêt des fonctions virtuelles
Classe abstraite et interface
  1. Classe abstraite, fonctions virtuelles pures
  2. Tronc commun pour dériver
  3. Interface
  4. Récupérer une sous classe depuis une base abstraite
  5. Résumé classe abstraite et interface
  6. Expérimentation : exemples des super-héros, les Avengers
    1. 1. Classe de base super-héros, interface desfonctions d’action
      1. a. Définition et stockage des armes
      2. b. Définition et stockage du paramétrage émotionnel
      3. c. Interface de fonctions pour tous les super-héros
      4. d. Définition de la classe "SuperHeros"
    2. 2. Une dérivée pour chaque Avenger
      1. a. Classe "CaptainAmerica"
      2. b. Classes Hulk, IronMan, BlackWidow et Thor
    3. 3. Souhait du polymorphisme et impossibilité
    4. 4. Virtualité, intérêt del’interface des fonctions d’action
    5. 5. Classe abstraite
Gestion des erreurs
  1. Introduction
  2. Socle hérité du C
    1. 1. Retourner un booléen
    2. 2. Retourner un numéro d’erreur
    3. 3. Afficher des informations au moment de l’erreur
    4. 4. Bibliothèques C de contrôle d’erreur
      1. a. La bibliothèque <cerrno> (errno.h)</cerrno>
      2. b. La bibliothèque <cassert> (assert.h)</cassert>
  3. Contrôle d'erreur C++
    1. 1. Introduction
      1. a. Bibliothèques de diagnostics
      2. b. Conseil sur les exceptions
    2. 2. Instructions natives throw, try et catch
      1. a. Retour throw
      2. b. Saut try et récupération catch
      3. c. Retour throw d’un appel de fonction
      4. d. Instruction throw sans valeur de retour
      5. e. Bloc catch(...) par défaut
      6. f. Exception non gérée
      7. g. Fonctions déclarées noexcept
    3. 3. L’en-tête <exception></exception>
      1. a. Principe
      2. b. Classe std::exception
      3. c. Les fonctions std::terminate, std::set_terminate,std::get_terminate
      4. d. Utiliser la virtualité de la classe std::exception
    4. 4. Déclaration static_assert
Auteur : Frédéric DROUILLON

Frédéric DROUILLON

Frédéric DROUILLON est enseignant, chercheur et aussi créateur dans le domaine de l'informatique et des arts numériques. Il envisage la programmation et ses langages comme un moyen d'expression et de formulation d'idées, une véritable écriture, qui fait naître de la recherche et de la créativité. L'objectif de son enseignement en langage C++ est de permettre au lecteur d'acquérir un savoir-faire fondamental en programmation informatique pour qui lui donnera très certainement envie de pouvoir circuler dans les autres techniques et langages de programmation.
En savoir plus

Découvrir tous ses livres

  • Langage C Maîtriser la programmation procédurale (avec exercices pratiques) (2e édition)

Nos nouveautés

voir plus