Programmation en C++ et Génie logiciel - Bibliolivre.com.pdf


Aperçu du fichier PDF programmation-en-c-et-genie-logiciel-bibliolivre-com.pdf - Page 1/49
SCIENCES SUP

Cours et exercices corrigés
IUT • BTS • Licence • Écoles d’ingénieurs • Formation continue

PROGRAMMATION
EN C++

ET GÉNIE LOGICIEL
http://bibliolivre.com

Vincent T’kindt

PROGRAMMATION
EN C++

ET GÉNIE

LOGICIEL

Télécharger la version complète
Sur http://bibliolivre.com

Génie logiciel
David Gustafson
208 pages
Schaum’s, EdiScience, 2003

Structures de données
avancées avec la STL
Programmation orientée objet
en C++
Philippe Gabrini
432 pages
Dunod, 2005

PROGRAMMATION
EN C++

ET GÉNIE

LOGICIEL

Cours et exercices corrigés
Vincent T’kindt

Maître de conférences au département Informatique
de l’École Polytechnique de l’université François Rabelais de Tours

Télécharger la version complète
Sur http://bibliolivre.com

Télécharger la version complète
Sur http://bibliolivre.com

© Dunod, Paris, 2007
ISBN 978-2-10-050634-7

Table des matières

Avant-propos

XI

CHAPITRE 1 • NOTIONS DE BASE SUR LE GÉNIE LOGICIEL

1

1.1

Qu’est-ce que le génie logiciel ?

1

1.2

Le cycle de vie d’un logiciel

2

1.3

Spécification et conception d’un logiciel

4

1.3.1. Les commentaires

5

1.3.2. Les exceptions

5

1.3.3. La spécification logique d’une fonction

8

1.4

1.3.4. Une première vision des classes

11

Quelques règles de bonne programmation

11

1.4.1. Règles liées à la spécification du programme

12

1.4.2. Règles liées à la conception du programme

18

CHAPITRE 2 • GÉNÉRALITÉS SUR LE LANGAGE C++

23

2.1

Mots-clefs, instructions et commentaires

23

2.2

La gestion des variables en langage C++

24

2.2.1. Déclaration et initialisation des variables

25

2.2.2. Portée et visibilité des variables

26

Notion de référence

28

2.3.1. Passage d’arguments par référence à une fonction

28

2.3.2. Les variables références

30

2.4

L’en-tête d’une fonction

31

2.5

Éviter les problèmes d’inclusions multiples d’interfaces

31

2.3

CHAPITRE 3 • LES OBJETS

35

3.1

Le retour des structures

35

3.1.1. Déclarer et définir des structures

35

3.1.2. Utiliser des structures

37

Programmation en C++ et Génie Logiciel

VI

3.2 Les classes

38

3.2.1. Déclarer et définir des classes

38

3.2.2. Utiliser des classes

41

3.2.3. Affecter un objet d’une classe dans un autre objet de la même classe : enjeux et
dangers

42

3.3 Variables et attributs statiques

46

3.3.1. Variables statiques n’appartenant pas à une classe

46

3.3.2. Attributs statiques

47

3.4 Constructeurs et destructeur

49

3.4.1. Les constructeurs

49

3.4.2. Le destructeur

56

3.5 Gestion d’objets dynamiques : les opérateurs new et delete

57

3.5.1. Allocation d’un élément unique ou d’un tableau d’éléments

57

3.5.2. Désallocation d’un élément unique ou d’un tableau d’éléments

60

3.6 Tout sur la vie des objets : synthèse

60

3.6.1. Initialisation d’un objet dès sa déclaration

61

3.6.2. Différentes catégories d’objets

61

3.7 Comment bien écrire une classe ?

63

CHAPITRE 4 • LES TRAITEMENTS

65

4.1 Passage d’arguments par défaut

65

4.2 Échange d’objets entre fonctions

66

4.3 Propriétés des fonctions membres

67

4.3.1. Spécification inline

67

4.3.2. Méthodes statiques

70

4.3.3. Auto-référence d’une classe

71

4.3.4. Fonctions membres constantes

71

4.3.5. Pointeurs sur les membres d’une classe

73

CHAPITRE 5 • LES FONCTIONS ET LES CLASSES AMIES

75

5.1 Amis et faux amis : le point de vue du génie logiciel

75

5.2 Le cas d’une fonction amie d’une classe

76

5.3 Le cas d’une méthode d’une classe amie d’une autre classe

77

5.4 Toutes les fonctions membres d’une classe amies d’une autre classe

77

Table des matières

VII

CHAPITRE 6 • LES EXCEPTIONS

79

6.1

6.2

6.3

Gestion des exceptions en langage C++

79

6.1.1. Lever une exception

80

6.1.2. Attraper une exception

81

6.1.3. Quel gestionnaire d’exceptions choisir ?

83

6.1.4. Gestion hiérarchisée des exceptions

85

6.1.5. Liste d’exceptions valides

87

Fonctions liées au traitement des exceptions

88

6.2.1. Différentes façons d’arrêter un programme

88

6.2.2. Remplacement de fonctions pour le traitement des erreurs

89

Utilisation des exceptions dans le développement de programme

90

CHAPITRE 7 • L’HÉRITAGE

91

7.1

L’héritage simple

91

7.1.1. Mise en œuvre

92

7.1.2. Contrôles d’accès

93

7.1.3. Accès aux membres de la classe de base

95

7.2

7.1.4. Compatibilité avec la classe de base

96

7.1.5. Appels des constructeurs et des destructeurs

98

7.1.6. Cas du constructeur de recopie

100

L’héritage multiple

101

7.2.1. Mise en œuvre

101

7.2.2. Membres homonymes dans les classes mères

101

7.2.3. Constructeurs et destructeur

105

CHAPITRE 8 • LA SURCHARGE

107

8.1

La surcharge de fonctions et de méthodes

107

8.1.1. Cas des fonctions/méthodes à un argument

108

8.1.2. Différenciation des prototypes

110

8.1.3. Cas des fonctions/méthodes à plusieurs arguments

111

8.1.4. Surcharge de fonctions membres

114

La surcharge d’opérateurs

114

8.2.1. Mécanisme

115

8.2

8.2.2. Portée et limites

116

8.2.3. Opérateurs ++ et - -

117

8.2.4. Opérateur d’affectation =

118

8.2.5. Opérateur d’indexation []

120

Programmation en C++ et Génie Logiciel

VIII

8.2.6. Opérateur d’accès aux membres d’une classe (->)

121

8.2.7. Opérateur de déréférencement (*)

123

8.2.8. Opérateurs new et delete

124

8.3 La surcharge de types

126

8.3.1. Rappels sur les conversions

126

8.3.2. Conversion d’une classe vers un type de base

128

8.3.3. Conversion d’un type de base vers une classe

129

8.3.4. Conversion d’une classe vers une autre classe

131

8.3.5. Exemples de conversions

132

CHAPITRE 9 • LES PATRONS DE FONCTIONS ET DE CLASSES

135

9.1 De la généricité avec les patrons !

135

9.2 Les patrons de fonctions/méthodes

136

9.2.1. Création d’un patron de fonctions/méthodes

136

9.2.2. Instanciation et utilisation

136

9.2.3. Spécialisation d’un patron de fonctions/méthodes

139

9.2.4. Sucharger un patron de fonctions/méthodes

139

9.3 Les patrons de classes

140

9.3.1. Création d’un patron de classes

141

9.3.2. Les membres statiques au sein d’un patron

142

9.3.3. Instanciation et utilisation

143

9.3.4. Préciser des types par défaut pour les types génériques

144

9.3.5. L’amitié et les patrons

145

9.3.6. Spécialisation du patron

146

9.3.7. Aller encore plus loin avec les patrons

147

CHAPITRE 10 • INTRODUCTION AU POLYMORPHISME ET AUX MÉ149
THODES VIRTUELLES
10.1 Qu’est-ce que le polymorphisme ?

149

10.2 Les méthodes virtuelles

151

10.2.1. Définition et déclaration

151

10.2.2. Méthodes virtuelles et héritages complexes

153

10.2.3. Influence des contrôles d’accès

154

10.2.4. Le cas des valeurs par défaut

155

10.2.5. Les méthodes virtuelles pures et les classes abstraites

156

Télécharger le fichier



Métadonnées


  • Format du fichier: PDF 1.7
  • 815 Ko, 49 pages
  • Envoyé le 10/06/2015 à 19:52
  • Confidentialité: fichier public
  • Page de téléchargement vue 2064 fois
  • Crée par: Nitro PDF Professional 6
  • Résolution: 481.887 x 680.315 pts