|
Bas de page | |
---|---|
Auteur | Sujet : excpetion dans le constructeur |
![]() Publicité | Posté le 27-07-2009 à 10:03:19 ![]() ![]() |
theShockWave I work at a firm named Koslow | faire une exception me semble tout à fait approprié, je ne crois même pas que tu aies vraiment d'autre solution.
Message édité par theShockWave le 27-07-2009 à 10:56:49 --------------- last.fm |
Glock 17Pro | merci, iou dsl pour le sujte j'ai tappé trop vtie |
Taz bisounours-codeur | Tu vas avoir un problème si tes membres construits n'ont pas de destructeurs. Par exemple:
|
Glock 17Pro | oui il faut que je fasse le boulot du destructeur moi même , et avant de lancer l'exception donc |
Taz bisounours-codeur | où alors tu te débrouilles pour ne travaillers qu'avec des smartpointers, des vectors, etc. C'est ça la vraie solution. |
Glock 17Pro | dans ma boite ils sont obsédés par les perfs, l'expert en C++ de la boite, me déconseille même d'utiliser les exceptions,il préférerais dans le cas que j'ai exposé ici, un système de boolén, en gros une variable membre error , que je positionne à true si il y a eu un pbm dans le constructeur Message cité 3 fois Message édité par Glock 17Pro le 27-07-2009 à 14:20:21 |
Taz bisounours-codeur |
|
Glock 17Pro | merci, ça me soulage, le mec a son statut d'expert, quand on est pas d'accord ça se termine,en euh je sais pas fait comme tu veux... wow ok d'accord |
Joel F Real men use unique_ptr |
|
![]() Publicité | Posté le 27-07-2009 à 18:00:10 ![]() ![]() |
bjone Insert booze to continue |
Message édité par bjone le 04-08-2009 à 15:58:36 |
Joel F Real men use unique_ptr |
Non car ca viole une bonne tripotée de principe objet dont la RAII ... A la limite, si tu veut pas lancer d'exception dans un ctor, fait un ctor exception-safe Message cité 2 fois Message édité par Joel F le 05-08-2009 à 13:11:07 |
Taz bisounours-codeur |
|
lambda0 |
|
Joel F Real men use unique_ptr |
|
sligor |
Il faudrait que je retrouve cet article Message cité 1 fois Message édité par sligor le 06-08-2009 à 23:28:40 |
Joel F Real men use unique_ptr | c'ets pas dans un GotW ? |
Glock 17Pro |
|
sligor |
je suis tombé sur un article qui dit que cette méthode est très mauvaise car on fini par oublier d'appeler l'initialisation. La solution:
Au final le code appelant ne peut pas faire de new ou Initialize séparément, on est obliger d'appler le méthode statique "Create":
J'ai simplifié l'exemple du livre qui lui utilise les templates pour éviter de redéfinir "create" pour les classes dérivées. Au passage ta fonction Create peux gérer les cas d'erreurs, liberer p et retourner un code d'erreur par référence. L'auteur précise que cette méthode doit être utilisée uniquement en cas de nécessité. Dans l'example de l'article, le problème était qu'on ne peut pas appeler de fonctions virtuelles pures dans un contructeur en C++. Message cité 3 fois Message édité par sligor le 10-08-2009 à 17:03:17 |
Glock 17Pro |
|
sligor | c'est l'article 49 |
masklinn í dag viðrar vel til loftárása |
--------------- I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box by throwing away the limits imposed by overbearing genetic regulations? Isn't that a good thing? |
Joel F Real men use unique_ptr |
|
Joel F Real men use unique_ptr |
masklinn í dag viðrar vel til loftárása |
Accessoirement Java a des destructeurs (finalizer), sauf qu'avec un GC non refcounting, ben l'appel du finalizer est pas déterministe, donc c'est pas d'un intérêt gigantesque Enfin, le destructeur n'est pas une notion générale de POO, c'est une notion spécifique à certaines implémentations de l'idée (et pas nécessairement les meilleures) Message cité 2 fois Message édité par masklinn le 10-08-2009 à 18:45:24 --------------- I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box by throwing away the limits imposed by overbearing genetic regulations? Isn't that a good thing? |
Glock 17Pro |
Taz bisounours-codeur |
Tu te rends compte qu'au final Initialize de sert strictement à rien...
|
masklinn í dag viðrar vel til loftárása |
--------------- I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box by throwing away the limits imposed by overbearing genetic regulations? Isn't that a good thing? |
Joel F Real men use unique_ptr |
|
Glock 17Pro |
sligor |
budlite Fresh |
--------------- Fresh |
Glock 17Pro |
budlite Fresh |
--------------- Fresh |
Glock 17Pro |
|
![]() Publicité | Posté le ![]() ![]() |