# Programmation C-C++/Conclusion

Ce livre est en cours de copie depuis le site http://casteyde.christian.free.fr/cpp/cours/online/book1.html qui le fournit sous licence GFDL.
Cours de C/C++ :
| Le langage ||
| | Première approche |
| | Les structures de contrôle |
| | Types avancés |
| | Pointeurs et références |
| | Le préprocesseur |
| | Modularité et compilation |
| | Écrire du code illisible |
| | C++ : La couche objet |
| | C++ : Les exceptions |
| | Identification des types |
| | Les espaces de nommage |
| | Les templates |
| La bibliothèque standard ||
| | Notions de base |
| | Les types complémentaires |
| | Les flux d'entrée / sortie |
| | Les locales |
| | Les conteneurs |
| | Les algorithmes |
| Conclusion ||
| Priorités des opérateurs ||
| Draft Papers ||
| Bibliographie ||
| Livre original de C. Casteyde Modifier le modèle ||
Pour terminer, je rappellerai les principales règles pour réaliser de bons programmes. Sans organisation, aucun langage, aussi puissant soit-il, ne peut garantir le succès d'un projet. Voici donc quelques conseils :
* commentez votre code, mais ne tuez pas le commentaire en en mettant là où les opérations sont vraiment très simples ou décrites dans un document externe. Marquez les références aux documents externes dans les commentaires ;
* analysez le problème avant de commencer la programmation. Cela comprend plusieurs étapes. La première est de réfléchir aux structures de données à utiliser et aux opérations qu'on va leur appliquer (il faut donc identifier les classes). Il faut ensuite établir les relations entre les classes ainsi identifiées et leurs communications. Pour cela, on pourra faire des diagrammes d'événements qui identifient les différentes étapes du processus permettant de traiter une donnée. Enfin, on décrira chacune des méthodes des classes fonctionnellement, afin de savoir exactement quelles sont leurs entrées et les domaines de validité de celles-ci, leurs sorties, leurs effets de bords et les opérations effectuées. Enfin seulement on passera au codage. Si le codage implique de corriger les résultats des étapes précédentes, c'est que la conception a été incorrecte ou incomplète : il vaut mieux retourner en phase de conception un peu pour voir l'impact des modifications à faire. Cela permet de ne pas passer à côté d'un effet de bord inattendu, et donc d'éviter de perdre du temps dans la phase de mise au point ;
* ne considérez aucun projet, même un petit projet ou un projet personnel, comme un projet qui échappe à ces règles. Si vous devez interrompre le développement d'un projet pour une raison quelconque, vous serez content de retrouver le maximum d'informations sur lui. Il en est de même si vous désirez améliorer un ancien projet. Et si la conception a été bien faite, cette amélioration ne sera pas une verrue sur l'ancienne version du logiciel, contrairement à ce qui se passe trop souvent.
Voilà. Vous connaissez à présent la plupart des fonctionnalités du C++. J'espère que la lecture de ce cours vous aura été utile et agréable. Si vous voulez en savoir plus, consultez les Draft Papers, mais sachez qu'ils sont réellement difficiles à lire. Ils ne peuvent vraiment pas être pris pour un support de cours. L'annexe B décrit l'organisation générale de ce document et donne quelques renseignements pour faciliter leur lecture.
Bonne continuation...