Bonjour à tous,
On m'a appris en c++ il faut tjrs mettre en ouevre la forme canonique
(construcetur de copie, affectation et je crois je ne suis pas sure
constructeur par defaut)bref.
supposons qu'on a les classes suivante:
class base{
base(const base& right)
{
donnéeComune1 = right.donnéeComune1;
}
};
class derivéA : base{
derivéA (const derivéA & right): base (right)
{
donéeSpécifiqueA = right.donéeSpécifiqueA;
}
};
class derivéB : base{
derivéB (const derivéB & right): base (right)
{
donéeSpécifiqueB = right.donéeSpécifiqueB;
}
};
est ce que c'est bien de mettre un constructeur de copie dans la
classe de base ou non. et qu'est ce qui ce passe si on fait :
Base pBase;
derivéA ptrA(pBase);
derivéA ptrA;
derivéB ptrB(ptrA);
même question pour l'opérateur d'affectation.
merci d'avance.
"Christophe Lephay" wrote in message news:<bljf85$2u9$...
a écrit dans le message de news:
Le problème là, c'est que ce n'est pas rare que les classe avec une identité aient aussi besoin de supporter la copie. Sinon, comment est-ce que tu implémentes un roll-back ou un undo ?
DP memento ?
Mais la façon la plus simple à implémenter le modèle Memento, c'est bien avec copie. Ce n'est pas toujours raisonable -- je ne ferais pas une copie complète du buffer de texte chaque fois que l'utilisateur modifie quelque chose dans l'éditeur. Mais quand c'est raisonable, la copie est bien ce qu'il y a de plus facile ; pour les types d'application que je fais, je l'utilise prèsqu'exclusivement.
-- James Kanze GABI Software mailto: Conseils en informatique orientée objet/ http://www.gabi-soft.fr Beratung in objektorientierter Datenverarbeitung 11 rue de Rambouillet, 78460 Chevreuse, France, +33 (0)1 30 23 45 16
"Christophe Lephay" <christophe-lephay@wanadoo.fr> wrote in message
news:<bljf85$2u9$1@news-reader4.wanadoo.fr>...
<kanze@gabi-soft.fr> a écrit dans le message de
news:d6652001.0310030006.41a88cbf@posting.google.com...
Le problème là, c'est que ce n'est pas rare que les classe avec une
identité aient aussi besoin de supporter la copie. Sinon, comment
est-ce que tu implémentes un roll-back ou un undo ?
DP memento ?
Mais la façon la plus simple à implémenter le modèle Memento, c'est bien
avec copie. Ce n'est pas toujours raisonable -- je ne ferais pas une
copie complète du buffer de texte chaque fois que l'utilisateur modifie
quelque chose dans l'éditeur. Mais quand c'est raisonable, la copie est
bien ce qu'il y a de plus facile ; pour les types d'application que je
fais, je l'utilise prèsqu'exclusivement.
--
James Kanze GABI Software mailto:kanze@gabi-soft.fr
Conseils en informatique orientée objet/ http://www.gabi-soft.fr
Beratung in objektorientierter Datenverarbeitung
11 rue de Rambouillet, 78460 Chevreuse, France, +33 (0)1 30 23 45 16
"Christophe Lephay" wrote in message news:<bljf85$2u9$...
a écrit dans le message de news:
Le problème là, c'est que ce n'est pas rare que les classe avec une identité aient aussi besoin de supporter la copie. Sinon, comment est-ce que tu implémentes un roll-back ou un undo ?
DP memento ?
Mais la façon la plus simple à implémenter le modèle Memento, c'est bien avec copie. Ce n'est pas toujours raisonable -- je ne ferais pas une copie complète du buffer de texte chaque fois que l'utilisateur modifie quelque chose dans l'éditeur. Mais quand c'est raisonable, la copie est bien ce qu'il y a de plus facile ; pour les types d'application que je fais, je l'utilise prèsqu'exclusivement.
-- James Kanze GABI Software mailto: Conseils en informatique orientée objet/ http://www.gabi-soft.fr Beratung in objektorientierter Datenverarbeitung 11 rue de Rambouillet, 78460 Chevreuse, France, +33 (0)1 30 23 45 16
Gabriel Dos Reis
writes:
[...]
| Quant aux knifs/knives, je ne savais pas que le mot existait en | français.
Je n'ai pas dit qu'il existait. J'ai dit c'est « comme si », faisant (1) l'hypothèse qu'on l'important, comme on a importé d'autres (2) on importait le singulier sans payer attention à la déclinaison pour le pluriel
| Les langues varient énormement dans leur façon de traiter des pluriels | étrangers. En allemand, on se sert en général des pluriels latins des | mots latins, mais on adapte les autres tant bien que mal. (J'ai eu un | mal fou une fois à convaincre un allemand qu'en anglais, le pluriel de | status était statuses, et non stati. En revanche, c'est bien Scenarien, | et non Scenarii, parce que Scenario n'est pas du latin.) En anglais ou | en français, en revanche, on adapte prèsque toujours le pluriel aux | règles de la langue. Même quand, comme en anglais, les règles sont | parfois assez compliquées.
presque toujours.
-- Gaby
kanze@gabi-soft.fr writes:
[...]
| Quant aux knifs/knives, je ne savais pas que le mot existait en
| français.
Je n'ai pas dit qu'il existait. J'ai dit c'est « comme si », faisant
(1) l'hypothèse qu'on l'important, comme on a importé d'autres
(2) on importait le singulier sans payer attention à la déclinaison
pour le pluriel
| Les langues varient énormement dans leur façon de traiter des pluriels
| étrangers. En allemand, on se sert en général des pluriels latins des
| mots latins, mais on adapte les autres tant bien que mal. (J'ai eu un
| mal fou une fois à convaincre un allemand qu'en anglais, le pluriel de
| status était statuses, et non stati. En revanche, c'est bien Scenarien,
| et non Scenarii, parce que Scenario n'est pas du latin.) En anglais ou
| en français, en revanche, on adapte prèsque toujours le pluriel aux
| règles de la langue. Même quand, comme en anglais, les règles sont
| parfois assez compliquées.
| Quant aux knifs/knives, je ne savais pas que le mot existait en | français.
Je n'ai pas dit qu'il existait. J'ai dit c'est « comme si », faisant (1) l'hypothèse qu'on l'important, comme on a importé d'autres (2) on importait le singulier sans payer attention à la déclinaison pour le pluriel
| Les langues varient énormement dans leur façon de traiter des pluriels | étrangers. En allemand, on se sert en général des pluriels latins des | mots latins, mais on adapte les autres tant bien que mal. (J'ai eu un | mal fou une fois à convaincre un allemand qu'en anglais, le pluriel de | status était statuses, et non stati. En revanche, c'est bien Scenarien, | et non Scenarii, parce que Scenario n'est pas du latin.) En anglais ou | en français, en revanche, on adapte prèsque toujours le pluriel aux | règles de la langue. Même quand, comme en anglais, les règles sont | parfois assez compliquées.
« Besides a mathematical inclination, an exceptionally good mastery of one's native tongue is the most vital asse of a competent programmer. » -- Dijkstra
(Tu me dirais qu'en ce qui concerne Gaby et moi, ça ne concerne pas le français:-). Mais on essaie quand même.)
Ah mais, au cas où ce serait ambigu, ce n'est pas du tout ce que j'ai voulu dire, bien au contraire. Vous vous débrouillez magnifiquement bien, avec en plus une volonté manifeste d'étudier les détails de la norme du Français ;-)
--
Français *==> "Musique renaissance" <==* English midi - facsimiles - ligatures - mensuration http://anaigeon.free.fr | http://www.medieval.org/emfaq/anaigeon/ Alain Naigeon - - Strasbourg, France
<kanze@gabi-soft.fr> a écrit dans le message news:
d6652001.0310060000.603eac40@posting.google.com...
« Besides a mathematical inclination, an exceptionally good mastery of
one's native tongue is the most vital asse of a competent programmer. »
-- Dijkstra
(Tu me dirais qu'en ce qui concerne Gaby et moi, ça ne concerne pas le
français:-). Mais on essaie quand même.)
Ah mais, au cas où ce serait ambigu, ce n'est pas du tout
ce que j'ai voulu dire, bien au contraire. Vous vous débrouillez
magnifiquement bien, avec en plus une volonté manifeste
d'étudier les détails de la norme du Français ;-)
--
Français *==> "Musique renaissance" <==* English
midi - facsimiles - ligatures - mensuration
http://anaigeon.free.fr | http://www.medieval.org/emfaq/anaigeon/
Alain Naigeon - anaigeon@free.fr - Strasbourg, France
« Besides a mathematical inclination, an exceptionally good mastery of one's native tongue is the most vital asse of a competent programmer. » -- Dijkstra
(Tu me dirais qu'en ce qui concerne Gaby et moi, ça ne concerne pas le français:-). Mais on essaie quand même.)
Ah mais, au cas où ce serait ambigu, ce n'est pas du tout ce que j'ai voulu dire, bien au contraire. Vous vous débrouillez magnifiquement bien, avec en plus une volonté manifeste d'étudier les détails de la norme du Français ;-)
--
Français *==> "Musique renaissance" <==* English midi - facsimiles - ligatures - mensuration http://anaigeon.free.fr | http://www.medieval.org/emfaq/anaigeon/ Alain Naigeon - - Strasbourg, France
Christophe Lephay
a écrit dans le message de news:
"Christophe Lephay" wrote in message news:<bljf85$2u9$...
a écrit dans le message de news:
Le problème là, c'est que ce n'est pas rare que les classe avec une identité aient aussi besoin de supporter la copie. Sinon, comment est-ce que tu implémentes un roll-back ou un undo ?
DP memento ?
Mais la façon la plus simple à implémenter le modèle Memento, c'est bien avec copie.
Oui, mais ce DP propose de ne pas copier l'objet lui-même, mais seulement ses données internes significatives, en les copiant, le cas échéant, dans un objet privé.
Ceci dit, si il n'exige pas que l'objet soit copiable (ait une sémantique de valeur), il demande bien que ses données internes, elles, le soient (quitte à ce que ce soit de manière privée)...
Chris
<kanze@gabi-soft.fr> a écrit dans le message de
news:d6652001.0310060003.1b5cd1c1@posting.google.com...
"Christophe Lephay" <christophe-lephay@wanadoo.fr> wrote in message
news:<bljf85$2u9$1@news-reader4.wanadoo.fr>...
<kanze@gabi-soft.fr> a écrit dans le message de
news:d6652001.0310030006.41a88cbf@posting.google.com...
Le problème là, c'est que ce n'est pas rare que les classe avec une
identité aient aussi besoin de supporter la copie. Sinon, comment
est-ce que tu implémentes un roll-back ou un undo ?
DP memento ?
Mais la façon la plus simple à implémenter le modèle Memento, c'est bien
avec copie.
Oui, mais ce DP propose de ne pas copier l'objet lui-même, mais seulement
ses données internes significatives, en les copiant, le cas échéant, dans un
objet privé.
Ceci dit, si il n'exige pas que l'objet soit copiable (ait une sémantique de
valeur), il demande bien que ses données internes, elles, le soient (quitte
à ce que ce soit de manière privée)...
"Christophe Lephay" wrote in message news:<bljf85$2u9$...
a écrit dans le message de news:
Le problème là, c'est que ce n'est pas rare que les classe avec une identité aient aussi besoin de supporter la copie. Sinon, comment est-ce que tu implémentes un roll-back ou un undo ?
DP memento ?
Mais la façon la plus simple à implémenter le modèle Memento, c'est bien avec copie.
Oui, mais ce DP propose de ne pas copier l'objet lui-même, mais seulement ses données internes significatives, en les copiant, le cas échéant, dans un objet privé.
Ceci dit, si il n'exige pas que l'objet soit copiable (ait une sémantique de valeur), il demande bien que ses données internes, elles, le soient (quitte à ce que ce soit de manière privée)...
Chris
Michel Michaud
Dans news:, Gabriel Dos
Richard Delorme writes:
D'après la réforme de l'orthographe de 1990 : http://www.orthographe-recommandee.info/modernisation.htm on écrivait « des scénario ou des scénarii », mais on doit écrire aujourd'hui « des scénarios.»
En bref : - « scénario, scénarii ou scenarii » sont acceptables - « scénarios » est recommandé.
j'ai déjà brûlé le dictionnaire ; ma prof est sauve -- elle n'était pas dans mon entourage immédiat.
Pourquoi brûler ton dictionnaire et en vouloir à ta prof ? Comme le dit un de mes livres « L'utilisation du pluriel étranger n'est pas vraiment fautive, mais de nos jours, on la considère comme un peu affectée ». Tu n'as que te dire que c'est ce que tu veux :-)
La tendance actuelle est à la francisation des mots étrangers (autant dans la prononciation que dans la façon de les écrire et de leur appliquer les règles de grammaire). Donc on dit plutôt des concertos plutôt que des /concerti/, des lieds plus que des /lieder/, etc., tout comme on prononce concensus en « consansus » plutôt que « consinsus »... En boni, la francisation nous évite d'avoir à utiliser l'italique sur des mots qu'on considère français...
-- Michel Michaud http://www.gdzid.com FAQ de fr.comp.lang.c++ : http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ/
Dans news:flhe2nppid.fsf@sel.cmla.ens-cachan.fr, Gabriel Dos
Richard Delorme <abulmo@nospam.fr> writes:
D'après la réforme de l'orthographe de 1990 :
http://www.orthographe-recommandee.info/modernisation.htm
on écrivait « des scénario ou des scénarii », mais on doit écrire
aujourd'hui « des scénarios.»
En bref :
- « scénario, scénarii ou scenarii » sont acceptables
- « scénarios » est recommandé.
j'ai déjà brûlé le dictionnaire ; ma prof est sauve -- elle n'était
pas dans mon entourage immédiat.
Pourquoi brûler ton dictionnaire et en vouloir à ta prof ? Comme
le dit un de mes livres « L'utilisation du pluriel étranger n'est
pas vraiment fautive, mais de nos jours, on la considère comme
un peu affectée ». Tu n'as que te dire que c'est ce que tu veux :-)
La tendance actuelle est à la francisation des mots étrangers (autant
dans la prononciation que dans la façon de les écrire et de leur
appliquer les règles de grammaire). Donc on dit plutôt des concertos
plutôt que des /concerti/, des lieds plus que des /lieder/, etc.,
tout comme on prononce concensus en « consansus » plutôt que
« consinsus »... En boni, la francisation nous évite d'avoir à
utiliser l'italique sur des mots qu'on considère français...
--
Michel Michaud mm@gdzid.com
http://www.gdzid.com
FAQ de fr.comp.lang.c++ :
http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ/
D'après la réforme de l'orthographe de 1990 : http://www.orthographe-recommandee.info/modernisation.htm on écrivait « des scénario ou des scénarii », mais on doit écrire aujourd'hui « des scénarios.»
En bref : - « scénario, scénarii ou scenarii » sont acceptables - « scénarios » est recommandé.
j'ai déjà brûlé le dictionnaire ; ma prof est sauve -- elle n'était pas dans mon entourage immédiat.
Pourquoi brûler ton dictionnaire et en vouloir à ta prof ? Comme le dit un de mes livres « L'utilisation du pluriel étranger n'est pas vraiment fautive, mais de nos jours, on la considère comme un peu affectée ». Tu n'as que te dire que c'est ce que tu veux :-)
La tendance actuelle est à la francisation des mots étrangers (autant dans la prononciation que dans la façon de les écrire et de leur appliquer les règles de grammaire). Donc on dit plutôt des concertos plutôt que des /concerti/, des lieds plus que des /lieder/, etc., tout comme on prononce concensus en « consansus » plutôt que « consinsus »... En boni, la francisation nous évite d'avoir à utiliser l'italique sur des mots qu'on considère français...
-- Michel Michaud http://www.gdzid.com FAQ de fr.comp.lang.c++ : http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ/
kanze
"Christophe Lephay" wrote in message news:<blrpii$lb3$...
a écrit dans le message de news:
"Christophe Lephay" wrote in message news:<bljf85$2u9$...
a écrit dans le message de news:
Le problème là, c'est que ce n'est pas rare que les classe avec une identité aient aussi besoin de supporter la copie. Sinon, comment est-ce que tu implémentes un roll-back ou un undo ?
DP memento ?
Mais la façon la plus simple à implémenter le modèle Memento, c'est bien avec copie.
Oui, mais ce DP propose de ne pas copier l'objet lui-même, mais seulement ses données internes significatives, en les copiant, le cas échéant, dans un objet privé.
C'est une solution. C'est une solution qui exige en quelque sort que le gestionnaire de la transaction sache quelles données internes sont significatives. Faire une copie complète, c'est bien plus simple.
La solution à adopter dépend évidemment de l'application. Dans ma dernière application et ici, les objets sont assez petits ; en plus, ici, c'est l'objet même qui interprète les commandes venues du client, et donc, personne en dehors de l'objet sait exactement ce qui est pertinent. J'opte donc (et la personne qui était ici avant moi avait opté) pour la copie complète. Si les objets avaient été lourds, et les modifications typiquement ne concernaient qu'une faible partie de leur état, la décision aurait pû être autre.
Noter aussi que si tu veux travailler avec plusieurs clients en parallel, avec de « optimistic locking », tu es obligé à faire des copies.
-- James Kanze GABI Software mailto: Conseils en informatique orientée objet/ http://www.gabi-soft.fr Beratung in objektorientierter Datenverarbeitung 11 rue de Rambouillet, 78460 Chevreuse, France, +33 (0)1 30 23 45 16
"Christophe Lephay" <christophe-lephay@wanadoo.fr> wrote in message
news:<blrpii$lb3$1@news-reader4.wanadoo.fr>...
<kanze@gabi-soft.fr> a écrit dans le message de
news:d6652001.0310060003.1b5cd1c1@posting.google.com...
"Christophe Lephay" <christophe-lephay@wanadoo.fr> wrote in message
news:<bljf85$2u9$1@news-reader4.wanadoo.fr>...
<kanze@gabi-soft.fr> a écrit dans le message de
news:d6652001.0310030006.41a88cbf@posting.google.com...
Le problème là, c'est que ce n'est pas rare que les classe avec
une identité aient aussi besoin de supporter la copie. Sinon,
comment est-ce que tu implémentes un roll-back ou un undo ?
DP memento ?
Mais la façon la plus simple à implémenter le modèle Memento, c'est
bien avec copie.
Oui, mais ce DP propose de ne pas copier l'objet lui-même, mais
seulement ses données internes significatives, en les copiant, le cas
échéant, dans un objet privé.
C'est une solution. C'est une solution qui exige en quelque sort que le
gestionnaire de la transaction sache quelles données internes sont
significatives. Faire une copie complète, c'est bien plus simple.
La solution à adopter dépend évidemment de l'application. Dans ma
dernière application et ici, les objets sont assez petits ; en plus,
ici, c'est l'objet même qui interprète les commandes venues du client,
et donc, personne en dehors de l'objet sait exactement ce qui est
pertinent. J'opte donc (et la personne qui était ici avant moi avait
opté) pour la copie complète. Si les objets avaient été lourds, et les
modifications typiquement ne concernaient qu'une faible partie de leur
état, la décision aurait pû être autre.
Noter aussi que si tu veux travailler avec plusieurs clients en
parallel, avec de « optimistic locking », tu es obligé à faire des
copies.
--
James Kanze GABI Software mailto:kanze@gabi-soft.fr
Conseils en informatique orientée objet/ http://www.gabi-soft.fr
Beratung in objektorientierter Datenverarbeitung
11 rue de Rambouillet, 78460 Chevreuse, France, +33 (0)1 30 23 45 16
"Christophe Lephay" wrote in message news:<blrpii$lb3$...
a écrit dans le message de news:
"Christophe Lephay" wrote in message news:<bljf85$2u9$...
a écrit dans le message de news:
Le problème là, c'est que ce n'est pas rare que les classe avec une identité aient aussi besoin de supporter la copie. Sinon, comment est-ce que tu implémentes un roll-back ou un undo ?
DP memento ?
Mais la façon la plus simple à implémenter le modèle Memento, c'est bien avec copie.
Oui, mais ce DP propose de ne pas copier l'objet lui-même, mais seulement ses données internes significatives, en les copiant, le cas échéant, dans un objet privé.
C'est une solution. C'est une solution qui exige en quelque sort que le gestionnaire de la transaction sache quelles données internes sont significatives. Faire une copie complète, c'est bien plus simple.
La solution à adopter dépend évidemment de l'application. Dans ma dernière application et ici, les objets sont assez petits ; en plus, ici, c'est l'objet même qui interprète les commandes venues du client, et donc, personne en dehors de l'objet sait exactement ce qui est pertinent. J'opte donc (et la personne qui était ici avant moi avait opté) pour la copie complète. Si les objets avaient été lourds, et les modifications typiquement ne concernaient qu'une faible partie de leur état, la décision aurait pû être autre.
Noter aussi que si tu veux travailler avec plusieurs clients en parallel, avec de « optimistic locking », tu es obligé à faire des copies.
-- James Kanze GABI Software mailto: Conseils en informatique orientée objet/ http://www.gabi-soft.fr Beratung in objektorientierter Datenverarbeitung 11 rue de Rambouillet, 78460 Chevreuse, France, +33 (0)1 30 23 45 16