IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage C++ Discussion :

gestion d'exception : cas particulier


Sujet :

Langage C++

  1. #1
    Membre émérite
    Avatar de prgasp77
    Homme Profil pro
    Ingénieur en systèmes embarqués
    Inscrit en
    Juin 2004
    Messages
    1 306
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur en systèmes embarqués
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 306
    Points : 2 466
    Points
    2 466
    Par défaut gestion d'exception : cas particulier
    Bonjour à tous.
    Je rencontre un petit problème : j'ai une classe A qui peut lever une exception lors de sa construction ; et une classe B contenant un objet de classe A en temps que membre privé et static.

    Comment initialiser ledit membre en gérant une éventuelle exception ? Détail important : je ne peux pas instancier à la main dans le main (jeu de mot \o/) B::a pour diverses raisons ; il est nécessaire que ce soit B::B(int) qui soit chargé du travail. Il m'est possible de modifier B pour que son member privé static soit non plus un A mais un pointeur vers un A (A* ... autre jeu de mot \o/).

    Petit récapitulaitif :
    Code C++ : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    class A
    {
    public:
       A() throw(int);
       ~A();
    };
     
    class B
    {
    public:
       B(int plop);
       ~B();
    private:
       static A a;
    };
     
    A B::a(42) // pas possible de mettre de try catch ici

    Merci de votre aide.
    -- Yankel Scialom

  2. #2
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Points : 13 017
    Points
    13 017
    Par défaut
    Salut,
    L'initialisation paresseuse ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    class B
    {
    public:
       B();
       ~B();
    private:
       static A& getA()
       {
          try{
             static A a(first);
             return a;
          }
          catch(int e)
          {
             throw;
          }
       }
    };

  3. #3
    Membre émérite
    Avatar de prgasp77
    Homme Profil pro
    Ingénieur en systèmes embarqués
    Inscrit en
    Juin 2004
    Messages
    1 306
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur en systèmes embarqués
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 306
    Points : 2 466
    Points
    2 466
    Par défaut
    La paresse est une grande qualité. J'en ai enfin la preuve.
    Merci beaucoup.
    -- Yankel Scialom

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Angle orienté deux vecteurs: gestion des cas particuliers
    Par darkman19320 dans le forum Mathématiques
    Réponses: 5
    Dernier message: 17/12/2013, 19h26
  2. Gestion d'un parc de voiture - cas particulier
    Par totogabi dans le forum Access
    Réponses: 6
    Dernier message: 21/01/2007, 22h32
  3. Réponses: 3
    Dernier message: 25/08/2006, 23h11
  4. [XMLRAD] gestion des exceptions
    Par pram dans le forum XMLRAD
    Réponses: 2
    Dernier message: 28/01/2003, 17h48
  5. c: gestion des exceptions
    Par vince_lille dans le forum C
    Réponses: 7
    Dernier message: 05/06/2002, 14h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo