Latest Upload :

Programmez Avec Le Langage Cpp

Programmez Avec Le Langage C++

 



Avant-prop os i
Qu'allez-vous apprendre en lisant ce livre ?. . . . . . . . . . . . . . . . . . . . ii
Comment lire ce livre ?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ii
Ce livre est issu du Site du Zéro . . . . . . . . . . . . . . . . . . . . . . . . . iii
Remerciements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . iv
I Découverte de la programm at ion en C++ 1
1 Qu'est-ce que le C++ ? 3
Les programmes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
Les langages de programmation. . . . . . . . . . . . . . . . . . . . . . . . . . 5
Le C++ face aux autres langages. . . . . . . . . . . . . . . . . . . . . . . . . 7
La p etite histoire du C++. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2 Les logiciels nécessaires p our programmer 13
Les outils nécessaires au programmeur . . . . . . . . . . . . . . . . . . . . . . 14
Co de: :Blo cks (Windows, Mac OS, Linux) . . . . . . . . . . . . . . . . . . . . 16
Visual C++ (Windows seulement) . . . . . . . . . . . . . . . . . . . . . . . . 21
Xco de (Mac OS seulement) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3 Votre premier programme 35
Le monde merveilleux de la console. . . . . . . . . . . . . . . . . . . . . . . . 36
Création et lancement d'un premier pro jet. . . . . . . . . . . . . . . . . . . . 38
Explications sur ce premier co de source . . . . . . . . . . . . . . . . . . . . . 41
Commentez vos programmes !. . . . . . . . . . . . . . . . . . . . . . . . . . . 45
4 Utiliser la mémoire 49
Qu'est-ce qu'une variable ?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
Déclarer une variable. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
Déclarer sans initialiser . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
A cher la valeur d'une variable. . . . . . . . . . . . . . . . . . . . . . . . . . 58
Les références. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
5 Une vraie calculatrice 65
Demander des informations à l'utilisateur . . . . . . . . . . . . . . . . . . . . 66
Mo di er des variables. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
Les constantes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
Un premier exercice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
Les raccourcis. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
Encore plus de maths !. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
6 Les structures de contrôle 85
Les conditions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
Bo oléens et combinaisons de conditions . . . . . . . . . . . . . . . . . . . . . 93
Les b oucles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
7 Découp er son programme en fonctions 101
Créer et utiliser une fonction . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
Quelques exemples. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
Passage par valeur et passage par référence . . . . . . . . . . . . . . . . . . . 111
Utiliser plusieurs chiers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
Des valeurs par défaut p our les arguments. . . . . . . . . . . . . . . . . . . . 123
8 Les tableaux 129
Les tableaux statiqu es . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
Les tableaux dyn amiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
Les tableaux multi-dimensionnels. . . . . . . . . . . . . . . . . . . . . . . . . 142
Les strings comme tableaux. . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
9 Lire et mo di er des chiers 147
Écrire dans u n chier. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148
Lire un chier. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151
Quelques astuces. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
10 TP : le mot mystère 159
Préparatifs et cons eils . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160
Correction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165
Aller plus loin. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168
11 Les p ointeurs 171
Une question d 'adress e. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172
Les p ointeurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174
L'allo cation dynamique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179
Quand utiliser des p ointeurs. . . . . . . . . . . . . . . . . . . . . . . . . . . . 183
I I La Programmation Orientée Ob jet 187
12 Intro duction : la vérité sur les strings en n dévoilée 189
Des ob jets. . . p our quoi fair e ?. . . . . . . . . . . . . . . . . . . . . . . . . . . 190
L'horrible secret du typ estring . . . . . . . . . . . . . . . . . . . . . . . . . 193
Créer et ut iliser des ob jetsstring . . . . . . . . . . . . . . . . . . . . . . . . 195
Op érations sur lesstring . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200
13 Les classes (Partie 1/2) 205
Créer une classe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206
Droits d'accès et encaps ulat ion. . . . . . . . . . . . . . . . . . . . . . . . . . 211
Séparer prototyp es et dé nitions . . . . . . . . . . . . . . . . . . . . . . . . . 217
14 Les classes (Partie 2/2) 225
Constructeur et destructeur. . . . . . . . . . . . . . . . . . . . . . . . . . . . 226
Les métho des constantes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232
Asso cier des classes entre elles. . . . . . . . . . . . . . . . . . . . . . . . . . . 233
Action ! . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239
Méga schéma rés umé. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242
15 La surcharge d'op érateurs 245
Petits pr éparatifs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246
Les op érateurs arithmétiques . . . . . . . . . . . . . . . . . . . . . . . . . . . 248
Les op érateurs de ux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 256
Les op érateurs de comparaison . . . . . . . . . . . . . . . . . . . . . . . . . . 260
16 TP : La POO en pratique avec ZFraction 265
Préparatifs et conseils . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266
Correction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271
Aller plus loin. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 278
17 Classes et p ointeurs 281
Pointeur d'une classe vers une autre classe. . . . . . . . . . . . . . . . . . . . 282
Gestion de l'allo cation dynamique . . . . . . . . . . . . . . . . . . . . . . . . 284
Le p ointeurthis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286
Le constructeur de copie. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 288
18 L'héritage 297
Exemple d'héritage simple. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 298
La dérivation de typ e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303
Héritage et constructeurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 307
La p ortéeprotected. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 310
Le masquage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 311
19 Le p olymorphisme 317
La résolution des liens . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 318
Les fonctions virtu elles. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321
Les métho des sp éciales. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 323
Les collections hétérogènes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 326
Les fonctions virtu elles pures . . . . . . . . . . . . . . . . . . . . . . . . . . . 330
20 Eléments statiques et amitié 333
Les métho des statiques. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 334
Les attributs statiques. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 335
L'amitié. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 337
I I I Créez vos propres fenêtres avec Qt 343
21 Intro duction à Qt 345
Dis papa, comment on fait des fen êtr es ?. . . . . . . . . . . . . . . . . . . . . 346
Présentation de Qt. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349
Installation de Qt. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 354
22 Compiler votre première fenêtre Qt 359
Présentation de Qt Creator . . . . . . . . . . . . . . . . . . . . . . . . . . . . 360
Co dons notre première fenêtre !. . . . . . . . . . . . . . . . . . . . . . . . . . 366
Di user le programme. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 369
23 Personnaliser les widgets 371
Mo di er les propriétés d'un widget. . . . . . . . . . . . . . . . . . . . . . . . 372
Qt et l'héritage. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 379
Un widget p eut en contenir un autre. . . . . . . . . . . . . . . . . . . . . . . 383
Hériter un widget. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 388
24 Les signaux et les slots 395
Le princip e des signaux et slots. . . . . . . . . . . . . . . . . . . . . . . . . . 396
Connexion d'un signal à un slot simple. . . . . . . . . . . . . . . . . . . . . . 397
Des paramètres dans les signaux et s lots. . . . . . . . . . . . . . . . . . . . . 400
Créer ses propres signaux et slots. . . . . . . . . . . . . . . . . . . . . . . . . 404
25 Les b oîtes de dialogue usuelles 411
A cher un message . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 412
Saisir une information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 420
Sélectionner une p olice. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 422
Sélectionner une couleur. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 425
Sélection d'un chier ou d'un dossier . . . . . . . . . . . . . . . . . . . . . . . 427
26 Apprendre à lire la do cumentation de Qt 431
Où trouver la do cumentation ? . . . . . . . . . . . . . . . . . . . . . . . . . . 432
Les di érentes sections de la do cumentation. . . . . . . . . . . . . . . . . . . 435
Comprendre la do cumentation d'u ne classe . . . . . . . . . . . . . . . . . . . 436
27 Positionner ses widgets avec les layouts 445
Le p ositionnement absolu et ses défauts . . . . . . . . . . . . . . . . . . . . . 446
L'architecture des classes de layout. . . . . . . . . . . . . . . . . . . . . . . . 448
Les layouts horizontaux et verticaux . . . . . . . . . . . . . . . . . . . . . . . 449
Le layout de grille . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 454
Le layout de formulaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 459
Combiner les layouts. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 461
28 Les principaux widgets 465
Les fenêtres. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 466
Les b outons. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 471
Les a cheurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 475
Les champs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 477
Les conteneurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 481
29 TP : ZeroClassGenerator 487
Notre ob jectif. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 488
Correction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 492
Des idées d'améliorations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 496
30 La fenêtre principale 499
Présentation deQMainWindo w . . . . . . . . . . . . . . . . . . . . . . . . . . . 500
La zone centr ale (SDI et MDI) . . . . . . . . . . . . . . . . . . . . . . . . . . 503
Les menus. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 507
La barre d'outils . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 512
31 Mo déliser ses fenêtres avec Qt Designer 515
Présentation de Qt Designer. . . . . . . . . . . . . . . . . . . . . . . . . . . . 516
Placer des widgets sur la fenêtre . . . . . . . . . . . . . . . . . . . . . . . . . 520
Con gurer les signaux et les slots. . . . . . . . . . . . . . . . . . . . . . . . . 525
Utiliser la fenêtre dans votre application. . . . . . . . . . . . . . . . . . . . . 527
32 TP : zNavigo, le navigateur web des Zéros ! 533
Les navigateurs et les moteurs web. . . . . . . . . . . . . . . . . . . . . . . . 534
Organisation du pro jet. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 538
Génération de la fenêtr e principale. . . . . . . . . . . . . . . . . . . . . . . . 541
Les slots p ersonnalisés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 545
Conclusion et améliorations p ossibles. . . . . . . . . . . . . . . . . . . . . . . 550
IV Utilisez la bibliothèque standard 551
33 Qu'est-ce que la bibliothèque standard ? 553
Un p eu d'histoire. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 554
Le contenu de la SL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 556
Se do cumenter sur la SL. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 557
L'héritage du C. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 558
34 Les conteneurs 565
Sto cker des éléments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 566
Les séquences et leurs adaptateurs . . . . . . . . . . . . . . . . . . . . . . . . 569
Les tables ass o ciatives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 574
Choisir le b on conteneur. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 576
35 Itérateurs et foncteurs 579
Itérateurs : des p ointeurs b o ostés . . . . . . . . . . . . . . . . . . . . . . . . . 580
La pleine puissance d eslistetmap . . . . . . . . . . . . . . . . . . . . . . . 584
Foncteur : la version ob jet des fonctions . . . . . . . . . . . . . . . . . . . . . 587
Fusion des deux con cepts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 592
36 La puissance des algorithmes 597
Un premier exemple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 598
Compter, chercher , trier. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 600
Encore plus d'algos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 605
37 Utiliser les itérateurs sur les ux 609
Les itérateurs de ux. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 610
Le retour des algorithmes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 613
Encore un r etour sur les strings ! . . . . . . . . . . . . . . . . . . . . . . . . . 616
38 Aller plus loin avec la SL 619
Plus loin avec les strings. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 620
Manipuler les tableaux statiques . . . . . . . . . . . . . . . . . . . . . . . . . 621
Faire du calcul scienti que. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 623
V Notions avancées 627
39 La gestion des erreurs avec les exceptions 629
Un problème bien ennuyeux. . . . . . . . . . . . . . . . . . . . . . . . . . . . 630
La gestion des exception s . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 632
Les exceptions standard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 637
Les assertions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 643
40 Créer des templates 647
Les fonctions templates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 648
Des fonctions plus compliquées. . . . . . . . . . . . . . . . . . . . . . . . . . 651
La sp écialisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 653
Les classes templates. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 655
41 Ce que vous p ouvez encore apprendre 661
Plus loin avec le langage C++ . . . . . . . . . . . . . . . . . . . . . . . . . . 662
Plus loin avec d'autres bibliothèques. . . . . . . . . . . . . . . . . . . . . . . 666


Download

Share this article :

Enregistrer un commentaire

 
Support :