Département de génie électrique et de génie informatique Faculté des sciences e

Département de génie électrique et de génie informatique Faculté des sciences et de génie Université Laval La programmation en C++ avec Unix 7è Edition IFT-19965 Denis Laurendeau & Denis Dion Jr. Notes de cours C ++ 2 Programmation en C++ IFT-19965 1. Photo de la page couverture: La figure de la page couverture a été empruntée à SLScan et représente un magnifique spécimen de chat persan roux. Le persan est un chat à poil long, de caractère doux et affectueux, dont les caractéristiques génétiques ont été développées avec les ans. Il se reconnaît principalement à son museau aplati et sa fourrure soyeuse. C’est un compagnon d’appartement idéal. 2. Remerciements: Nous tenons à remercier les personnes suivantes pour leur contribution à la rédaction de ces notes: • Le professeur Marc Parizeau pour ses conseils sur le contenu du cours. • Les assistants du cours Algorithmes de l’ingénieur I qui est l’ancêtre du présent cours: Antoine Escobar, Marielle Mokhtari, Langis Pitre, Denis Dion et Nicolas Pelletier. Leur aide a été précieuse pour identifier les points importants sur lesquels il faut insister pour bien faire passer la matière très dense qu’est le langage C++. Leur apport à la mise sur pied des expériences de travaux pratiques a été inestimable. • Merci également à Denis Dion et Nicolas Pelletier pour avoir mis sur pied la page html du cours et à Antoine Escobar et Jacques Tremblay pour leur effort de développement d’outils WWW pour la conception d’exercices. • Le collègue Dominic Grenier pour sa lecture attentive de la 6è édition. • Les étudiants de première année en génie électrique et en génie informatique pour leur participation active au cours et pour leur suggestions sur la façon de l’améliorer. • Mon chat Mini Big Puce, un persan écaille de tortue, qui m’a soutenu lors de la rédaction de ces notes en venant sans cesse marcher sur le clavier et fouiner dans mes documents, y laissant au passage poils et saletés. Minibig est maintenant au paradis des chats mais demeure toujours dans mes pensées. Heureusement, Ms Marple (un gouttière blanc) et Cléopâtre (un hymaléen bluepoint) sont venues la remplacer. C ++ Programmation en C++ IFT-19965 3 Table des matières CHAPITRE 1 Introduction..............................................................................................................5 CHAPITRE 2 La compilation et l’exécution d’un programme simple...........................................9 CHAPITRE 3 La déclaration des variables en C++......................................................................17 CHAPITRE 4 Les expressions arithmétiques ...............................................................................23 CHAPITRE 5 La lecture des informations au clavier...................................................................31 CHAPITRE 6 Les fonctions en C++.............................................................................................35 CHAPITRE 7 De l’intérêt d’utiliser les fonctions en C++ ...........................................................45 CHAPITRE 8 Les variables locales et les variables globales.......................................................47 CHAPITRE 9 La création des classes et des objets en C++ .........................................................55 CHAPITRE 10 La définition de fonctions membres ......................................................................65 CHAPITRE 11 Les constructeurs ...................................................................................................73 CHAPITRE 12 Les fonctions membres de lecture et d’écriture.....................................................79 CHAPITRE 13 Comment tirer profit de l’abstraction des données................................................89 CHAPITRE 14 La protection contre les accès accidentels aux membres des classes ....................91 CHAPITRE 15 Les instructions de préprocesseur..........................................................................99 CHAPITRE 16 La notion d’héritage en C++................................................................................107 CHAPITRE 17 La conception de hiérarchies de classes ..............................................................123 CHAPITRE 18 Les tests utilisant les prédicats numériques .........................................................127 CHAPITRE 19 Les énoncés conditionnels ...................................................................................131 CHAPITRE 20 La combinaison logique d’expressions booléennes.............................................139 CHAPITRE 21 Les itérations en C++...........................................................................................147 CHAPITRE 22 Le traitement des données contenues dans des fichiers.......................................155 CHAPITRE 23 Les tableaux de nombres......................................................................................161 CHAPITRE 24 Les tableaux d’objets ...........................................................................................165 CHAPITRE 25 La créations de flots de données d’entrée et de sortie .........................................169 CHAPITRE 26 La création d’objets au “run-time” ......................................................................175 CHAPITRE 27 Le stockage des pointeurs aux objets d’une classe..............................................183 CHAPITRE 28 Introduction aux fonctions virtuelles (virtual).....................................................189 CHAPITRE 29 Les énoncés conditionnels multiples ...................................................................211 CHAPITRE 30 Les énumérations en C++ ....................................................................................215 CHAPITRE 31 Appel de constructeurs à partir d’autres constructeurs........................................219 CHAPITRE 32 Fonctions membres appelant d’autres fonctions membres..................................225 CHAPITRE 33 Les variables privées (private) et protégées (protected) ......................................229 CHAPITRE 34 Les dérivations de classes protected et private ....................................................239 CHAPITRE 35 Les fonctions qui retournent des chaînes de caractères .......................................243 CHAPITRE 36 Le passage des paramètres par référence.............................................................255 CHAPITRE 37 La surdéfinition de l’opérateur d’insertion ..........................................................269 CHAPITRE 38 La surdéfinition des opérateurs: notions fondamentales......................................277 C ++ 4 Programmation en C++ IFT-19965 CHAPITRE 39 La surdéfinition des opérateurs unaires ...............................................................283 CHAPITRE 40 La surdéfinition des opérateurs binaires ..............................................................289 CHAPITRE 41 La conception d’un programme à partir de plusieurs fichiers .............................297 CHAPITRE 42 L’utilitaire make: notions élémentaires................................................................315 CHAPITRE 43 L’utilitaire make: notions avancées......................................................................321 CHAPITRE 44 La lecture et l’écriture de chaînes de caractères dans un fichier..........................335 CHAPITRE 45 Les tests sur des chaînes de caractères.................................................................339 CHAPITRE 46 Le stockage des chaînes de caractères dans les objets.........................................343 CHAPITRE 47 La récupération de la mémoire (désallocation) grâce à l’opérateur delete et aux fonctions membres appelées destructeurs ...........................................................351 CHAPITRE 48 Le constructeur par recopie (copy constructor) ...................................................369 CHAPITRE 49 Les classes et fonctions amies (friend) ................................................................393 CHAPITRE 50 La réutilisation des fonctions: la notion de fonction générique (template) .........399 CHAPITRE 51 La réutilisation des classes: la notion de patrons de classe (template) ................405 Bibliographie .......................................................................................................415 Programmation en C++ IFT-19965 5 C ++ CHAPITRE 1 Introduction 1 Le but de ces notes de cours est de vous faciliter l’apprentissage des propriétés essentielles de la programmation objet par le biais du langage de programmation C++. 2 Le langage de programmation C++ est le résultat d’une évolution du langage de programmation C, l’un des langages les plus populaires dans le monde de l’informatique. Malgré qu’il est un descendant du langage C, le langage C++ est significativement différent parce qu’il s’articule autour des notions de programmation objet. 3 En programmation, un objet est un groupe d’informations stocké dans une partie de la mémoire de l’ordinateur. A chaque objet est associé un type de données, ce type définissant l’utilisation qui sera faite des données. Tous les langages de programmation possèdent des types de données internes1 ou (built-in) tels les entiers ou les réels. 1. aussi appelées données intrinsèques C ++ 6 Programmation en C++ IFT-19965 4 Un langage de programmation objet incite l’ingénieur à concevoir des programmes centrés sur les types de données et sur les hiérarchies de types de données qu’il conçoit lui-même. Par exemple, un langage de programmation objet permet de définir des objets informatiques qui correspondent exactement aux objets de la vie courante qu’on désire utiliser: cheval, auto, aéroport, banque, etc. Par ailleurs, un langage procédural incite plutôt l’ingénieur à concevoir des programmes en fonction de la façon dont les données seront traitées par les fonctions ou des procédures. De tels langages sont par exemple le C, le FORTRAN ou le Pascal. 5 Le langage C++ devient de plus en plus populaire pour les raisons suivantes: • C++ est relativement facile à apprendre • les programmes en C++ s’exécutent rapidement • les programmes en C++ sont concis • le C++ est disponible sur plusieurs plate-formes matérielles 6 Il y a deux principales raisons qui motivent l’apprentissage du C++: • la productivité d’un concepteur de logiciel est plus grande en C++ qu’en C. • plusieurs modules de logiciel sont déjà disponibles en C++ et peuvent être utilisés simplement, réduisant ainsi le temps de développement d’une application. 7 Dans ces notes de cours, on insiste principalement sur deux principes fondamentaux en programmation: l’abstraction des données1 et l’abstraction des procédures2. 8 On insiste également sur les principes suivants: • la représentation explicite 1. “data abstraction” en anglais 2. “procedure abstraction” en anglais C ++ Programmation en C++ IFT-19965 7 • la non-duplication • la visibilité locale • la simplicité • les connaissances nécessaires • la réduction des calculs inutiles 9 Dans les notes de cours, les idées principales sont énoncées dans les paragraphes numérotés. Les concepts avancés sont identifiés par un titre approprié. On rencontre aussi des paragraphes d’exercices et des paragraphes de résumé qui rassemblent les concepts importants vus dans un chapitre. Résumé 10 ✔Le langage C++ repose sur la programmation objet qui insiste sur les notions de types de données et de hiérarchie entre les types de données. ✔C++ résulte de l’évolution du langage C. C ++ 8 Programmation en C++ IFT-19965 Programmation en C++ IFT-19965 9 C ++ CHAPITRE 2 La compilation et l’exécution d’un programme simple 11 Dans ce chapitre, les concepts de compilation et d’exécution d’un programme simple en langage C++ sont présentés. 12 En C++, comme pour plusieurs autres langages, il faut d’abord écrire un programme source avec un éditeur (comme par exemple l’éditeur emacs dont un guide vous est suggéré dans le cours). 13 Un programme source contient le texte décrivant les instructions du langage dans lequel le programme est écrit. L’éditeur permet d’entrer ce texte à l’ordinateur et de le sauvegarder dans un fichier source sur le disque dur de l’ordinateur, ce qui permet d’en conserver le contenu à long terme et de le réutiliser ultérieurement. 14 Une fois le programme source (aussi appelé le code source) entré, il faut ensuite le compiler avec un programme appelé compilateur, pour produire ce qu’on appelle le code objet1 qui est stocké dans un fichier objet sur le disque dur de l’ordinateur. Ce code objet a une forme incompréhensible pour l’utilisateur mais qui est pleine uploads/Litterature/ la-programmation-en-notes-de-cours.pdf

  • 11
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager