Constructeur privés

Fermé
sergino1212 - 5 juil. 2016 à 12:24
GlanVonBrylan Messages postés 11 Date d'inscription mercredi 6 juillet 2016 Statut Membre Dernière intervention 7 juillet 2016 - 7 juil. 2016 à 14:16
Bjr à tous!
j'aimerai savoir comment est ce on peut créer un objet si tous les constructeur de sa classe sont privés?
A voir également:

3 réponses

Dalfab Messages postés 706 Date d'inscription dimanche 7 février 2016 Statut Membre Dernière intervention 2 novembre 2023 101
Modifié par Dalfab le 6/07/2016 à 23:16
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
GlanVonBrylan Messages postés 11 Date d'inscription mercredi 6 juillet 2016 Statut Membre Dernière intervention 7 juillet 2016
7 juil. 2016 à 14:16
À 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
Pierre1310 Messages postés 8554 Date d'inscription lundi 21 décembre 2015 Statut Membre Dernière intervention 21 juillet 2020 645
5 juil. 2016 à 12:26
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
Whismeril Messages postés 19029 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 26 avril 2024 931
5 juil. 2016 à 12:43
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