Constructeur privés

sergino1212 -  
 Utilisateur anonyme -
Bjr à tous!
j'aimerai savoir comment est ce on peut créer un objet si tous les constructeur de sa classe sont privés?

3 réponses

  1. Dalfab Messages postés 638 Date d'inscription   Statut Membre Dernière intervention   102
     
    Bonjour,

    Si tous les constructeurs sont privés, les seuls qui peuvent construire l'objet sont :
    • les amis
    • les méthodes static de la classe (accessibles si elles ne sont privées.)

    class Privee {
       Privee(int);
    public:
       static Privee Creer();         // fonction static
       friend Privee monAmie();       // fonction amie
       friend struct MonAmie;         // classe Amie
    };
    Privee Privee::Creer() { return Privee(0); }
    Privee monAmie() { return Privee(1); }
    struct MonAmie {
        Privee creerPrivee() { return Privee(2); }
    };

    Dans tous les cas, celui qui peut créer un objet Privee est indiqué dans la définition de la class Privee
    0
    1. Utilisateur anonyme
       
      À ce propos je recommande plutôt une méthode static, l'amitié est vraiment à utiliser en ultime recours, perso j'en ai jamais eu besoin.
      0
  2. Pierre1310 Messages postés 8854 Statut Membre 652
     
    Salut,

    Si tu as une classe classeA et une autre classeB.

    Si tu veux accéder a la classeB tu dois la déclarer dans classeA..

    Private classeB = newclasseA();

    Il me semble, a voir si je ne confond pas avec java.
    -2
  3. Utilisateur anonyme
     
    Bonjour

    avec une méthode static.
    Je n'ai pas d'exemple en c++ comme ça mais en C#, on peut parser un entier à partir d'un string comme ça:
    int monInt = int.Parse("1");

    -2