Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1964 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  Prohiber l'allocation/destruction d'objet

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Prohiber l'allocation/destruction d'objet

n°913597
Joel F
Real men use unique_ptr
Posté le 03-12-2004 à 10:37:35  profilanswer
 

J'ai divers classe dont les instances sont allouable par le client et sont accaparé par un gestionnaire.
 

Code :
  1. Task* task = new Task( /*...*/ );
  2. TaskManager mng;
  3. mng.registerTask( task, TASK_ID );


 
Le pb est que je veut empecher la destruction des Task par le client mais la laissé gérée par le TaskManager.
 
Como estas possibla ?

mood
Publicité
Posté le 03-12-2004 à 10:37:35  profilanswer
 

n°913639
spokup
Posté le 03-12-2004 à 11:04:13  profilanswer
 

Je sais pas si c'est possible , j'ai jamais testé mais essaye de mettre le destructeur en protected et rajoute  
 
friend class Task;
 
dans la declaration de TaskManager

n°913641
Lam's
Profil: bas.
Posté le 03-12-2004 à 11:06:36  profilanswer
 

spokup a écrit :

Je sais pas si c'est possible , j'ai jamais testé mais essaye de mettre le destructeur en protected et rajoute  
 
friend class Task;
 
dans la declaration de TaskManager


 
L'inverse plutôt. ;)  friend class TaskManager dans la classe Task.
 

n°913654
HelloWorld
Salut tout le monde!
Posté le 03-12-2004 à 11:12:49  profilanswer
 

Pointeur intelligent ?
Fonction membre (qui peut être template) dans ton TaskManager qui en un seul coup fait la création & l'association avec un ID ?


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
n°913661
spokup
Posté le 03-12-2004 à 11:16:55  profilanswer
 

Lam's a écrit :

L'inverse plutôt. ;)  friend class TaskManager dans la classe Task.


 
oui exact !

n°913680
Joel F
Real men use unique_ptr
Posté le 03-12-2004 à 11:27:14  profilanswer
 

c'est parfait merci \o/

n°913684
Lam's
Profil: bas.
Posté le 03-12-2004 à 11:32:24  profilanswer
 

D'un point de vue de conception, Puis-je te suggérer de déléguer la creation des objets au manager ? C'est une bonne habitude de faire en sorte que la création/suppression se fasse par la même classe.
 
Et ça t'évitera de faire le register à la main (les utilisateurs sont toujours très tête en l'air...).
 
Task* task = TaskManager::CreateTask( /*...*/ );
 
 
edit: j'avais zappé le message de HelloWorld. grilled donc.


Message édité par Lam's le 03-12-2004 à 11:35:37
n°913912
Joel F
Real men use unique_ptr
Posté le 03-12-2004 à 14:54:22  profilanswer
 

c'est le cas deja mais je voulais prevenir le fait que l'utilisateur qui recoit un Task* du manager le detruise ;)

n°913952
HelloWorld
Salut tout le monde!
Posté le 03-12-2004 à 15:10:13  profilanswer
 

Renvoie un pointeur intelligent type shared_ptr...


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
n°913980
Joel F
Real men use unique_ptr
Posté le 03-12-2004 à 15:26:31  profilanswer
 

:o


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  Prohiber l'allocation/destruction d'objet

 

Sujets relatifs
DbExpress ou objet interbaseJava : rendre un objet constant ?
[SOCKETS] Objet persistantMapping Objet Relationnel
[Class] Constructeur et allocation de mémoire.qu'est l'orienté objet ?
Objet axMSFlexGrid dans VB .NetProbleme fonction et tableau d'objet
File de Pile Objetimplementation d'un objet entity
Plus de sujets relatifs à : Prohiber l'allocation/destruction d'objet


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR