OVH Cloud OVH Cloud

constructeur de copie.

47 réponses
Avatar
mohamed92000
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.

10 réponses

1 2 3 4 5
Avatar
kanze
"Christophe Lephay" wrote in message
news:<blh9bt$1md$...
a écrit dans le message de
news:
"Christophe Lephay" wrote in message
news:<blepi8$8g8$...

Par exemple "cette chaise" est un objet réel, "une chaise" est un
objet conceptuel. Un (ou n) rectangle(s) sont conceptuels, mais
*ce* rectangle est un objet réel...


Point de vue intéressant. Mais comment le traduire en informatique ?
Je suis bien d'accord que si le programme doit traiter « cette
chaise », ce n'est pas avec une sémantique de valeur -- l'objet a
une identité réele. Mais je vois mal l'autre côté.


Voir plus bas...

En fait, mais c'est une présentation bien plus bas niveau, je dirais
qu'un objet a des attributes (pour une chaise, la couleur, par
exemple). Or, si ces attributes sont toute la signification de
l'objet, et que je peux utiliser n'importe quel objet à sa place,
pourvu qu'il a les mêmes attributes, l'objet a une sémantique de
valeur.


Celà me parait clair (après l'avoir lu plusieurs fois quand même
lol)...

D'une certaine manière, dans un cas c'est l'objet lui-même qui compte
alors que dans l'autre, ce sont plus ses propriétés...


Ce n'est pas l'objet lui-même qui compte, c'est sa valeur:-). Mais en
effet, oui, si tu considères que sa valeur, c'est le tuple des valeurs
de ces propriétés.

Par exemple, pour un antiquaire, c'est l'objet lui-même qui compte en
tant que quelque chose d'unique alors que pour un déménageur, ce sont
son poids ou ses dimensions qui ont une signification.


Tout dépend. L'antiquaire pourrait bien accepter la substitution d'une
autre chaise qui a les même propriétés (age, artiste, état...). Tandis
que si le déménageur par de l'ancien chez moi avec une chaise qui m'a
léguée ma mère, et à laquelle j'attache beaucoup de valeur sentimentale,
et qu'il arrive au nouveau chez moi avec une chaise tout à fait
semblable, mon non la même, je ne sais pas si je serais d'accord.

En fait, c'est impossible à définir d'office ce qui doit être valeur, et
ce qui ne doit pas l'être, sans savoir les visées du programme. Dans un
programme de gestion de comptes, c'est probable que l'argent serait une
valeur ; dans un programme de gestion numismatiques, en revanche,
probablement pas.

C'est vraiment pas évident de dégager une "règle canonique" de quand
utiliser une sémantique de valeur et de quand ne pas le faire.


Peut-être parce qu'il n'y en a pas. On commence par décider ce que le
programme doit faire (et c'est étonnant combien de gens sautent cette
étape). Ensuite, on postule un peu comment on pourrait l'organiser.
Ensuite, on peaufine cette organisation en jouant avec les scénarios. Ce
qui en sort, c'est un certain nombre de classes acteur. Alors, en gros,
ce sont ces classes acteur qui auront une sémantique d'identité, et les
valeurs qu'elles échangent entre elle auront une sémantique de valeur.

Mais ce n'est qu'en gros.

Dire que c'est quand le type doit supporter l'affectation est clair et
concis, mais ne dit rien sur *quand* un type doit supporter
l'affectation :)


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 ?

--
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



Avatar
Gabriel Dos Reis
writes:

| Ensuite, on peaufine cette organisation en jouant avec les scénarios.

Je crois que ta compagne aurait dit « scenari » -- mais je ne suis pas
italien :-)

-- Gaby
Avatar
Christophe Lephay
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 ?

Chris

Avatar
Alain Naigeon
a écrit dans le message news:


Tout dépend. L'antiquaire pourrait bien accepter la substitution d'une
autre chaise qui a les même propriétés (age, artiste, état...). Tandis
que si le déménageur par de l'ancien chez moi avec une chaise qui m'a
léguée ma mère, et à laquelle j'attache beaucoup de valeur sentimentale,
et qu'il arrive au nouveau chez moi avec une chaise tout à fait
semblable, mon non la même, je ne sais pas si je serais d'accord.


Bien sûr, mais pour te déménager il t'oblige à signer un document
disant que tu es d'accord ; crois-moi : je déménage dans 15 jours !!

--

Français *==> "Musique renaissance" <==* English
midi - facsimiles - ligatures - mensuration
http://anaigeon.free.fr | http://www.medieval.org/emfaq/anaigeon/
Alain Naigeon - - Strasbourg, France

Avatar
Gabriel Dos Reis
"Alain Naigeon" writes:

| disant que tu es d'accord ; crois-moi : je déménage dans 15 jours !!

tu restes toujours en Alsace ?

-- Gaby
Avatar
James Kanze
Gabriel Dos Reis writes:

|> writes:

|> | Ensuite, on peaufine cette organisation en jouant avec les
|> | scénarios.

|> Je crois que ta compagne aurait dit « scenari » -- mais je ne
|> suis pas italien :-)

Et mes amis allemand aurait dit « Scenarien ». C'est un mot
gréc au départ, je crois, et chacun en fait le pluriel comme il a
l'habitude.

--
James Kanze mailto:
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
11 rue de Rambouillet, 78460 Chevreuse, France +33 1 41 89 80 93
Avatar
Gabriel Dos Reis
James Kanze writes:

| Gabriel Dos Reis writes:
|
| |> writes:
|
| |> | Ensuite, on peaufine cette organisation en jouant avec les
| |> | scénarios.
|
| |> Je crois que ta compagne aurait dit « scenari » -- mais je ne
| |> suis pas italien :-)
|
| Et mes amis allemand aurait dit « Scenarien ». C'est un mot
| gréc au départ, je crois, et chacun en fait le pluriel comme il a
| l'habitude.

Mais je ne crois pas que « scenarios » soit correct en français.

-- Gaby
Avatar
Richard Delorme

James Kanze writes:

| Gabriel Dos Reis writes:
|
| |> writes:
|
| |> | Ensuite, on peaufine cette organisation en jouant avec les
| |> | scénarios.
|
| |> Je crois que ta compagne aurait dit « scenari » -- mais je ne
| |> suis pas italien :-)
|
| Et mes amis allemand aurait dit « Scenarien ». C'est un mot
| gréc au départ, je crois, et chacun en fait le pluriel comme il a
| l'habitude.

Mais je ne crois pas que « scenarios » soit correct en français.


En effet, il manque un accent, l'orthographe recommandée est « scénarios ».

--
Richard

Avatar
Gabriel Dos Reis
James Kanze writes:

| Gabriel Dos Reis writes:
|
| |> writes:
|
| |> | Ensuite, on peaufine cette organisation en jouant avec les
| |> | scénarios.
|
| |> Je crois que ta compagne aurait dit « scenari » -- mais je ne
| |> suis pas italien :-)
|
| Et mes amis allemand aurait dit « Scenarien ». C'est un mot
| gréc au départ, je crois, et chacun en fait le pluriel comme il a
| l'habitude.

scenario n.m. (ital. /senario/, du lat. /scena/, scène). 1. Canevas
d'une pièce , d'un roman. 2. CINÉMA. Document écrit décrivant scène
par scène ce qui sera tourné. SYN. : /script/. 3. Récit, dans une
bande dessinée. 4. /Fig/. Déroulement programmé ou prévu d'une action.
/Le scénario d'un hold-up/. Graphi savante : /scenario/ (pl. /scenarii/).

-- Gaby
Avatar
James Kanze
Gabriel Dos Reis writes:

|> James Kanze writes:

|> | Gabriel Dos Reis writes:

|> | |> writes:

|> | |> | Ensuite, on peaufine cette organisation en jouant avec les
|> | |> | scénarios.

|> | |> Je crois que ta compagne aurait dit « scenari » -- mais
|> | |> je ne suis pas italien :-)

|> | Et mes amis allemand aurait dit « Scenarien ». C'est un mot
|> | gréc au départ, je crois, et chacun en fait le pluriel comme
|> | il a l'habitude.

|> Mais je ne crois pas que « scenarios » soit correct en
|> français.

Sans l'accent, non. Sinon, tel que je l'ai écrit, je crois que si.
C'est au moins l'orthographe qui m'a donné le dictionnaire de
l'Académie française. En revanche, mon Petit Robert m'indique que
c'est un mot italien au départ, et non gréc. Mais ce n'est qu'un
détour ; le mot de base est bien scène (ou plutôt scena, en
italien), qui lui dérive du gréc.

Qu'est-ce qui te fais penser que c'est incorrect ? Je te démande
sérieusement, parce que je sais que tes connaissances du français
dépasse largement les miens, et je suppose aussi que l'absence de
l'accent dans ton message est dû pûrement aux raisons
techniques -- je suppose que c'est donc quelque chose d'autre qui te
gène. Seulement, je n'arrive pas à voir ce que c'est.

--
James Kanze mailto:
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
11 rue de Rambouillet, 78460 Chevreuse, France +33 1 41 89 80 93
1 2 3 4 5