C++ en action

19,00 

D. Ryan Stephens, Christopher Diggins, Jonathan Turkanis, Jeff Cogswell

Envoi soigné et Expédié en 48h (jours ouvrables)
Edition O’Reilly
17,5 x 24 x 2,5 cm
555 pages
Dépot légal :2006
Très Bon état

Catégories : ,

Description

Passez au niveau supérieur dans votre carrière de développeur avec cette mine d’or technique qui transforme les concepts complexes en solutions de code applicables immédiatement.

Sommaire

Un guide pratique pour maîtriser la programmation C++ avancée

D’abord, le collectif d’experts rédige C++ en action, une ressource incontournable pour les développeurs ambitieux. En effet, ce manuel pratique concentre ses efforts sur l’application concrète des concepts du langage. Justement, les auteurs proposent des solutions éprouvées pour structurer des applications robustes et performantes. De plus, les lecteurs découvrent comment exploiter toute la puissance du C++ moderne. Ainsi, cette ressource répond efficacement à des problématiques de développement logiciel complexes. Alors, l’approche orientée vers l’efficacité aide les programmeurs de manière significative. En somme, ce livre propulse les techniciens de la théorie à une maîtrise professionnelle du code.

Exploitation de la bibliothèque standard et gestion des ressources

D’une part, ce manuel technique accorde une place prépondérante à la bibliothèque standard (STL). Précisément, les spécialistes détaillent l’utilisation des conteneurs, des algorithmes et des itérateurs. Ensuite, ces outils optimisent les performances globales des programmes informatiques. Parallèlement, les rédacteurs portent une attention particulière à la sécurité du code. Effectivement, l’usage des pointeurs intelligents et la gestion des exceptions renforcent cette sécurité. Aussi, les auteurs partagent des techniques innovantes pour éviter les fuites de mémoire. Justement, ces méthodes garantissent la stabilité complète des systèmes logiciels. Bref, tout développeur de grand projet doit acquérir ces connaissances fondamentales.

Architecture logicielle et techniques de métaprogrammation

D’autre part, le livre explore les modèles de conception pour créer des logiciels évolutifs. Concrètement, l’ouvrage aborde la métaprogrammation à base de modèles (templates) de façon précise. Ainsi, cette technique génère un code flexible et facilement réutilisable. De plus, le lecteur apprend à gérer la programmation concurrente et le multithreading. Alors, ces compétences permettent d’exploiter pleinement la puissance des processeurs modernes. Ensuite, les auteurs combinent habilement la théorie architecturale et les astuces de débogage. De fait, cette alliance fournit toutes les clés pour concevoir des systèmes élégants. En conclusion, les ingénieurs logiciels adoptent ce compagnon indispensable pour atteindre l’excellence.

Caractéristiques

  • Titre : C++ en action

  • Auteurs : D. Ryan Stephens, Christopher Diggins, Jonathan Turkanis et Jeff Cogswell

  • Éditeur : O’Reilly

  • Format : Broché

  • Nombre de pages : 555 pages

  • Dimensions : 17,5 x 24 x 2,5 cm

  • Dépôt légal : 2006

  • Langue : Français

  • ISBN-13 : 9782841774074

D. Ryan Stephens, Christopher Diggins, Jonathan Turkanis, Jeff Cogswell

Envoi soigné et Déposé en 48h (jours ouvrables) Edition O’XReilly 17,5 x 24 x 2,5 cm 555 pages Dépot légal:2006 Très Bon état

Résumé

Une approche pratique pour maîtriser le développement logiciel moderne

D’abord, ce livre propose une immersion concrète dans l’univers complexe du langage C++. En effet, les auteurs privilégient une approche axée sur la résolution de problèmes réels. Justement, chaque chapitre traite de défis spécifiques que les programmeurs rencontrent en entreprise. De plus, vous apprendrez à structurer votre code de manière efficace et robuste. Ainsi, l’ouvrage met l’accent sur les meilleures pratiques de programmation actuelle. Alors, il s’adresse aux développeurs qui possèdent déjà les bases du langage. Effectivement, le contenu aide à transformer des connaissances théoriques en compétences opérationnelles. En somme, ce guide indispensable vous permet de produire des logiciels de haute qualité. D’ailleurs, la pédagogie repose sur des exemples de code clairs et testés. Finalement, vous découvrirez comment optimiser vos flux de travail quotidiens avec brio.

Exploration des bibliothèques standards et gestion de la mémoire

D’une part, le manuel explore en profondeur la bibliothèque standard, également appelée STL. Précisément, les auteurs expliquent comment utiliser les conteneurs et les algorithmes efficacement. Ensuite, vous apprendrez à gérer la mémoire sans créer de fuites de données. Parallèlement, le livre détaille l’utilisation des pointeurs intelligents pour sécuriser vos applications. Aussi, les rédacteurs abordent largement la manipulation des chaînes de caractères et des flux. Justement, chaque technique présentée vise à améliorer la performance globale de vos programmes. De fait, l’ouvrage traite de la gestion des exceptions pour éviter les plantages. Alors, vous saurez comment concevoir des systèmes capables de supporter des charges importantes. Certes, les équipes techniques estiment cette expertise cruciale pour les projets d’envergure. Bref, la maîtrise de ces outils fondamentaux constitue le cœur du métier de développeur.

Conception orientée objet et techniques de métaprogrammation avancées

D’autre part, l’architecture logicielle se place au centre des préoccupations de cet ouvrage expert. Concrètement, vous étudierez les modèles de conception, aussi appelés patterns, les plus utilisés. Ensuite, les auteurs expliquent comment créer des classes réutilisables et faciles à maintenir. Justement, l’équipe éditoriale analyse avec précision la métaprogrammation avec les modèles, ou templates. Ainsi, cette technique permet de générer du code générique puissant et flexible. De plus, vous découvrirez comment réduire la redondance dans vos fichiers sources. Alors, le livre aborde la programmation multithread pour exploiter les processeurs modernes. Précisément, les spécialistes expliquent simplement la synchronisation des données entre plusieurs fils d’exécution. Effectivement, ces concepts avancés permettent de repousser les limites du langage C++. En conclusion, vous deviendrez capable de concevoir des architectures logicielles complexes et élégantes.

Méthodes de débogage et optimisation des performances du code

Pour finir, le dernier volet de l’ouvrage concerne la phase cruciale du test. Spécifiquement, les auteurs partagent des astuces pour traquer les erreurs les plus subtiles. Puis, vous apprendrez à utiliser les outils de profilage pour identifier les lenteurs. Notamment, les experts traitent l’optimisation du code sans sacrifier la lisibilité du programme. Aussi, le livre donne des conseils précieux pour accélérer l’exécution des calculs intensifs. Alors, vous saurez comment compiler vos projets pour différentes plateformes cibles. De surcroît, des méthodes éprouvées facilitent grandement la gestion des dépendances externes. Assurément, ce manuel vous accompagne fidèlement de la conception jusqu’au déploiement final. Dès lors, il constitue une ressource précieuse pour tout professionnel de l’informatique. Globalement, vous gagnerez en productivité tout en améliorant la fiabilité de vos créations.

Table des matières

Préface… xi

Construction d’applications C++… 1

1.1. Obtenir et installer GCC… 15

1.2. Construire une application « Bonjour, Monde » simple en ligne de commande… 17

1.3. Construire une bibliothèque statique en ligne de commande… 23

1.4. Construire une bibliothèque dynamique en ligne de commande… 24

1.5. Construire une application complexe en ligne de commande… 32

1.6. Installer Boost.Build… 37

1.7. Construire une application « Bonjour, Monde » simple avec Boost.Build… 38

1.8. Construire une bibliothèque statique avec Boost.Build… 42

1.9. Construire une bibliothèque dynamique avec Boost.Build… 43

1.10. Construire une application complexe avec Boost.Build… 45

1.11. Construire une bibliothèque statique avec un EDI… 48

1.12. Constuire une bibliothèque dynamique avec un EDI… 51

1.13. Construire une application complexe avec un EDI… 54

1.14. Obtenir GNU make… 59

1.15. Construire une application « Bonjour Monde » simple avec GNU make… 61

1.16. Construire une bibliothèque statique avec GNU Make… 69

1.17. Construire une bibliothèque dynamique avec GNU Make… 74

1.18. Construire une application complexe avec GNU make… 75

1.19. Définir une macro… 79

1.20. Spécifier une option de ligne de commande depuis votre EDI… 81

1.21. Produire une version de débogage… 82

1.22. Produire une version finale… 86

1.23. Spécifier une variante de la bibliothèque d’exécution… 89

1.24. Imposer une conformité stricte au standard C++… 93

1.25. Lier automatiquement un fichier source sur une bibliothèque spécifiée… 96

1.26. Utiliser les modèles exportés… 98

Organisation du code… 103

2.1. S’assurer qu’un fichier d’en-têtes n’est inclus qu’une seule fois… 105

2.2. Garantir l’existence d’une seule instance d’une variable parmi des fichiers sources… 106

2.3. Réduire les directives #include à l’aide de la pré-déclaration de classe… 108

2.4. Prévenir les conflits de noms à l’aide des espaces de noms… 109

2.5. Inclure un fichier inline… 116

Nombres… 117

3.1. Convertir une chaîne en type numérique… 117

3.2. Convertir des nombres en chaînes de caractères… 120

3.3. Tester si une chaîne contient un nombre valide… 123

3.4. Comparer des nombres en virgule flottante avec une précision bornée… 126

3.5. Analyser syntaxiquement une chaîne contenant un nombre en notation scientifique… 128

3.6. Convertir entre types numériques… 130

3.7. Récupérer les valeurs minimum et maximum d’un type numérique… 133

Chaînes de caractères et texte… 135

4.1. Remplir une chaîne… 136

4.2. Tronquer une chaîne… 137

4.3. Stocker des chaînes dans une séquence… 143

4.4. Obtenir la longueur d’une chaîne… 146

4.5. Inverser une chaîne… 149

4.6. Découper une chaîne… 149

4.7. Découper une chaîne en mots… 152

4.8. Assembler une séquence de chaînes… 155

4.9. Trouver quelque chose dans des chaînes… 157

4.10. Retrouver la nième instance d’une sous-chaîne… 160

4.11. Supprimer une sous-chaîne d’une chaîne… 162

4.12. Convertir une chaîne en bas de casse ou capitales… 164

4.13. Effectuer une comparaison insensible à la casse… 166

4.14. Effectuer une recherche insensible à la casse dans une chaîne… 168

4.15. Convertir des tabulations en espace et inversement dans un fichier texte… 170

4.16. Effectuer un retour automatique à la ligne dans un fichier texte… 173

4.17. Dénombrer les caractères, les mots et les lignes d’un fichier texte… 175

4.18. Dénombrer les instances de chaque mot dans un fichier texte… 177

4.19. Ajouter des marges à un fichier texte… 180

4.20. Justifier un fichier texte… 182

4.21. Réduire des suites d’espaces à un seul espace dans un fichier texte… 185

4.22. Corriger automatiquement un texte lors de la modification d’un tampon… 186

4.23. Lire un texte de champs séparés par des virgules… 189

4.24. Découper une chaîne à l’aide d’expressions régulières… 191

Dates et heures… 193

5.1. Obtenir l’heure et la date actuelles… 193

5.2. Transformer une date en chaîne… 196

5.3. Effectuer des calculs avec des dates… 199

5.4. Conversions entre fuseaux horaires… 200

5.5. Déterminer le numéro d’un jour dans une année donnée… 201

5.6. Définir des types numériques contraints… 203

Stockage de données avec les conteneurs… 209

6.1. Utiliser des vecteurs plutôt que des tableaux… 210

6.2. Utilisation efficace des vecteurs… 214

6.3. Copier un vecteur… 218

6.4. Stocker des pointeurs dans un vecteur… 220

6.5. Stocker des objets dans une liste… 221

6.6. Associer des chaînes à d’autres objets… 226

6.7. Utiliser les tables de hachage… 232

6.8. Stockage ordonné d’objets… 237

6.9. Stocker des conteneurs dans des conteneurs… 240

Algorithmes… 243

7.1. Parcourir un conteneur… 244

7.2. Retirer des objets d’un conteneur… 251

7.3. Mélanger aléatoirement des données… 254

7.4. Comparer des intervalles… 255

7.5. Fusionner des données… 258

7.6. Ordonner un intervalle… 262

7.7. Partitionner un intervalle… 265

7.8. Opérations ensemblistes sur des séquences… 267

7.9. Transformer des éléments dans une séquence… 270

7.10. Créer votre propre algorithme… 272

7.11. Imprimer un intervalle vers un flux… 275

Classes… 279

8.1. Initialiser des variables membres de classe… 280

8.2. Utiliser une fonction pour créer des objets avec les modèles de fabrique de classes… 283

8.3. Utiliser les constructeurs et les destructeurs pour gérer les ressources… 285

8.4. Ajouter automatiquement de nouvelles instances de classe à un conteneur… 287

8.5. S’assurer de la copie unique d’une variable membre… 289

8.6. Déterminer le type d’un objet à l’exécution… 291

8.7. Déterminer si la classe d’un objet est une sous-classe d’une autre… 293

8.8. Donner un identifiant unique à chaque instance d’une classe… 294

8.9. Créer une classe singleton… 297

8.10. Créer une interface à l’aide d’une classe de base abstraite… 299

8.11. Écrire un modèle de classe… 304

8.12. Écrire un modèle de fonction membre… 308

8.13. Surcharger les opérateurs d’incrémentation et de décrémentation… 311

8.14. Surcharger les opérateurs arithmétiques et d’assignation pour les classes intuitives… 313

8.15. Appeler une fonction virtuelle d’une superclasse… 320

9. Exceptions et sécurité… 323

9.1. Créer une classe exception… 323

9.2. Sécuriser un constructeur vis-à-vis des exceptions… 327

9.3. Sécuriser une liste d’initialisation… 330

9.4. Sécuriser les fonctions membres vis-à-vis des exceptions… 333

9.5. Copier un objet de façon sûre… 338

10. Flux et fichiers… 343

10.1. Aligner du texte… 344

10.2. Mettre en forme des données en virgule flottante… 348

10.3. Créer vos propres manipulateurs de flux… 351

10.4. Envoyer une classe dans un flux… 354

10.5. Lire une classe depuis un flux… 357

10.6. Obtenir des informations sur un fichier… 358

10.7. Copier un fichier… 360

10.8. Effacer ou renommer un fichier… 363

10.9. Créer un fichier temporaire… 365

10.10.Créer un répertoire… 367

10.11.Supprimer un répertoire… 369

10.12.Obtenir le contenu d’un répertoire… 371

10.13.Extraire l’extension de fichier depuis une chaîne… 373

10.14.Extraire un nom de fichier d’un chemin complet… 374

10.15.Extraire un chemin à partir d’un chemin complet vers un fichier… 375

10.16.Remplacer l’extension d’un fichier… 377

10.17.Combiner deux chemins en un seul… 378

11. Sciences et mathématiques… 381

11.1. Compter le nombre d’éléments d’un conteneur… 382

11.2. Trouver la plus grande ou plus petite valeur d’un conteneur… 383

11.3. Calculer la somme et la moyenne des éléments d’un conteneur… 386

11.4. Filtrer des valeurs hors d’un intervalle donné… 389

11.5. Calculer la variance, l’écart type et d’autres fonctions statistiques… 390

11.6. Générer des nombres aléatoires… 393

11.7. Initialiser un conteneur avec des nombres aléatoires… 395

11.8. Représenter un vecteur numérique dynamiquement dimensionné… 397

11.9. Représenter un vecteur numérique à taille fixe… 398

11.10.Calculer un produit scalaire… 401

11.11.Calculer la norme d’un vecteur… 403

11.12.Calculer la distance entre deux vecteurs… 403

11.13.Implémenter un stride iterator… 405

11.14.Implémenter une matrice dynamiquement dimensionnée… 409

11.15.Implémenter une matrice à taille constante… 412

11.16.Multiplier des matrices… 415

11.17.Calculer une Transformée de Fourier Rapide… 417

11.18.Utiliser des coordonnées polaires… 419

11.19.L’arithmétique d’un ensemble de bits… 421

11.20.Représenter de grands entiers à largeur fixe… 425

11.21.Implémenter des nombres en virgule fixe… 429

12. Multithreading… 433

12.1. Créer un thread… 434

12.2. Sécuriser par des threads l’accès à une ressource… 437

12.3. Avertir un thread depuis un autre… 444

12.4. Initialiser une seule fois une ressource partagée… 447

12.5. Passer un paramètre à une fonction thread… 448

13. Internationalisation… 451

13.1. Saisir une chaîne Unicode… 452

13.2. Lire et écrire des nombres… 453

13.3. Lire et écrire des dates et des heures… 456

13.4. Lire et écrire des devises… 461

13.5. Ordonner des chaînes localisées… 465

14. XML… 467

14.1. Analyser un document XML simple… 468

14.2. Employer les chaînes Xerces… 476

14.3. Parser un document XML complexe… 479

14.4. Manipuler un document XML… 490

14.5. Valider un document XML à l’aide d’une DTD… 495

14.6. Valider un document XML à l’aide d’un schéma… 499

14.7. Transformer un document XML avec XSLT… 503

14.8. Évaluer une expression XPath… 509

14.9. Utiliser XML pour sauvegarder et restaurer un ensemble d’objets… 515

15. Divers… 521

15.1. Pointeurs de fonction et fonctions de rappel… 521

15.2. Utiliser des pointeurs sur membres de classes… 523

15.3. S’assurer qu’une fonction ne modifie pas un paramètre… 525

15.4. S’assurer qu’une méthode ne modifie pas son objet… 528

15.5. Écrire un opérateur qui ne soit pas une méthode… 529

15.6. Initialiser une séquence avec une liste de valeurs… 531

Index… 535

Quatrième de couverture

**C++/Programmation**

**C++ en action**

C++ est un langage riche et complexe, aux puissantes fonctionnalités : bâti autour du langage C, il est orienté objet et propose des fonctions en ligne, la surcharge d’opérateurs, etc. Il se retrouve aujourd’hui à la base de nombreux applicatifs et d’interfaces de développement graphiques.

Cet ouvrage propose un ensemble de 171 solutions adaptables immédiatement sur le modèle : un problème, une solution, une discussion. Des experts en C++ répondent ici aux questions que tout programmeur en C++ se pose un jour ou l’autre. L’accent a été mis d’une part sur la performance et sur la portabilité et d’autre part sur le recours aux nombreuses bibliothèques C++ et notamment Boost.

Descriptif

Les recettes proposées couvrent un large éventail de domaines, allant des tâches simples à des manipulations plus complexes ; vous trouverez par exemple :

  • – Travailler avec des nombres pour les convertir, les comparer.
  • – Dates et heures : formatage, conversion, etc.
  • – Gestion des exceptions et sécurité : créer une classe exception.
  • – Classes et objets : initialiser des variables membres de classe, appeler une fonction virtuelle d’une super-classe.
  • – Construire des applications C++ avec make, Boost.Build.
  • – Analyser du XML et utiliser les Schemas, XSLT, XPath.
  • – Manipuler des chaînes de caractères et du texte.
  • – Le multithreading : créer un thread, initialiser une seule fois une ressource partagée, etc.
  • – L’internationalisation : lire et écrire des devises, des dates, saisir une chaîne Unicode.
  • – Calculs mathématiques et scientifiques : somme, moyenne, statistiques, distance entre deux vecteurs.
  • – Les algorithmes : retirer des objets d’un conteneur, ordonner un intervalle.

S’il est parfois instructif de réinventer la roue, le faire en C++ n’apportera que désagréments et perte de temps. Recourir à la bibliothèque standard de C++, aux bibliothèques Boost et aux solutions proposées ici feront gagner un temps précieux au programmeur et lui épargneront des lignes de codes inutiles, qu’il soit débutant ou plus expérimenté.

ISBN 2-84177-407-4

www.oreilly.fr

Informations complémentaires

Poids 960 g

Avis

Il n’y a pas encore d’avis.

Soyez le premier à laisser votre avis sur “C++ en action”

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Vous aimerez peut-être aussi…