Bonsoir à tous, je commence le c++ et je travaille sur les Classes, je suis devant un cas de figure qui me pose problème : ma classe Flacon est définit par son nom, sa masse et son volume, j'aimerai que lorsque je crée un objet flacon, si sa masse dépasse 1kilos, je ne puisse pas crée cet objet:
Est-il possible d'émettre des conditions (max par exemple) sur un attribut ?
Dois-je directement agir dans le constructeur dans ce cas là ?
Si tu créés ta classe Flacon à partir du code que tu écris, tu peux utiliser la fonctionnalité 'assert();' ( définie dans l'en-tête <cassert> ). Sinon , si tes classes Flacon sont créées en lisant des fichiers il peux être opportun de lancer une exception std::runtime_error .
Attention à ne pas faire de votre classe un simple réceptacle à données.
Une classe est plus un fournisseur de service qu'une pochette surprise.
Comme les volumes de flacon sont standardisés, il serait peut-être pertinent de faire une énumération des différentes capacités possible et faire du type de l'attribut une instance de cet énumération.
Je recherche un CDI/CDD/mission freelance comme Architecte Logiciel/ Expert Technique sur technologies Microsoft.
> j'aimerai que lorsque je crée un objet flacon, si sa masse dépasse 1kilos, je ne puisse pas crée cet objet:
Bon, ce n'est pas toi qui crée un objet, mais ton programme.
Et "quand je le fais, je ne peux pas le faire", il y a un léger problème de contradiction interne.
Reprenons calmement :
à un moment ton programme demande la construction d'un objet
il est possible qu'elle échoue
quand elle échoue, que doit faire le programme ?
Dans les possibilités
fermer boutique immédiatement
lever une exception qui est traitée.
Comment poser des conditions sur mes attributs ?
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Mon site web de jeux SDL2 entre autres : https://www.ant01.fr