Mieux programmer en C++ : 47 problèmes pratiques résolus by Herb Sutter

By Herb Sutter

Show description

By Herb Sutter

Show description

Read or Download Mieux programmer en C++ : 47 problèmes pratiques résolus PDF

Best programming: programming languages books

Core C Sharp (Visual Studio 2.0 And Dot Net Sep

In view that its unencumber now not rather 3 years in the past, C# has speedily received broad utilization. This e-book is written for C# 2. zero, protecting the entire new positive factors in 2. zero, together with generics. as well as its insurance of C#, it additionally offers info at the . internet Framework and periods that C# interacts with. each bankruptcy comprises questions and solutions besides steered initiatives.

iPhone Apps mit HTML, CSS und JavaScript: Ohne Objective-C und Cocoa zur eigenen App

IPhone Apps mit HTML, CSS and JavaScript: Ohne Objective-C und Cocoa zur eigenen App

Pro J2ME Polish : open source wireless Java tools suite

* the first booklet at the J2ME Polish open resource instrument * Written through Robert Virkus, the lead programmer and architect of J2ME Polish * Discusses each element of J2ME Polish in-depth, together with fitting, utilizing, and increasing * contains hands-on tutorials that motivate the reader to use their received wisdom

Extra info for Mieux programmer en C++ : 47 problèmes pratiques résolus

Sample text

Autrement dit, une opération doit toujours être réalisée de manière atomique (soit entièrement effectuée, soit entièrement annulée) et ne jamais laisser le programme dans un état incohérent. C’est le type de sémantique qui est couramment utilisée dans le contexte des bases de données sous les termes « validation ou annulation » (« commit ou rollback ») . Prenons l’exemple d’un client de Stack appelant successivement la fonction Pop() pour récupérer une référence vers le dernier élément de la pile, puis la fonction Push()pour ajouter un élément : si cette deuxième fonction échoue à cause d’une exception, l’état de l’objet Stack doit rester inchangé et, en particulier, la référence obtenue par Pop() doit toujours être valide.

Swap(b) On peut noter au passage que la fonction Swap() ne génèrera jamais d’exception, par construction. C’est d’ailleurs pour cela qu’elle sera la pierre angulaire de la robustesse aux exceptions de notre nouvelle version de Stack. La raison d’être de StackImpl est simple : son rôle est de masquer à la classe externe Stack les détails d’implémentation liés à la gestion des zones de mémoire dynamique. D’une manière générale, il est toujours préférable de recourir le plus possible à l’encapsulation et de séparer les responsabilités.

Ne permettent pas de récupérer la valeur venant d’être dépilée. Ce n’est pas un hasard; c’est, en réalité, le seul moyen de se comporter correctement en présence d’exceptions. Les fonctions ci-dessus sont similaires aux fonctions membres top et pop du conteneur stack<> de la librairie standard. Là encore, il ne s’agit pas d’une coïncidence. Pour que le parallèle soit parfait, il faudrait rajouter deux fonctions membres à notre conteneur Stack<> : © copyright Éditions Eyrolles 40 Gestion des exceptions template const T& Stack::Top() const { if( vused_ == 0) { throw "Erreur : pile vide"; } else { return v_[vused_-1]; } } Version surchargée de la fonction Top() renvoyant une référence constante vers le dernier élément de la pile.

Download PDF sample

Rated 4.75 of 5 – based on 48 votes