J'ai un flot (ofstream) comme attribut d'une classe. Je ne sais pas
comment le recopier dans mon constructeur par recopie, l'operateur = ne
fonctionne pas (il est apparemment prive). Quelqu'un saurait-il comment
faire mon constructeur par recopie ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Fabien LE LEZ
On Mon, 21 Mar 2005 13:59:01 +0100, Anne Sophie Tranchant :
J'ai un flot (ofstream) comme attribut d'une classe. Je ne sais pas comment le recopier dans mon constructeur par recopie
Tu ne peux pas mettre de constructeur de copie dans ce cas. D'ailleurs, qu'est-ce que ça voudrait dire, d'après toi, de copier un ofstream ? La seule interprétation raisonnable que je vois, ce serait de recopier le fichier à l'identique, avec le même nom. Or, sur la plupart des systèmes, deux fichiers ne peuvent avoir le même nom.
-- ;-)
On Mon, 21 Mar 2005 13:59:01 +0100, Anne Sophie Tranchant
<Anne-Sophie.Tranchant@irisa.fr>:
J'ai un flot (ofstream) comme attribut d'une classe. Je ne sais pas
comment le recopier dans mon constructeur par recopie
Tu ne peux pas mettre de constructeur de copie dans ce cas.
D'ailleurs, qu'est-ce que ça voudrait dire, d'après toi, de copier un
ofstream ? La seule interprétation raisonnable que je vois, ce serait
de recopier le fichier à l'identique, avec le même nom. Or, sur la
plupart des systèmes, deux fichiers ne peuvent avoir le même nom.
On Mon, 21 Mar 2005 13:59:01 +0100, Anne Sophie Tranchant :
J'ai un flot (ofstream) comme attribut d'une classe. Je ne sais pas comment le recopier dans mon constructeur par recopie
Tu ne peux pas mettre de constructeur de copie dans ce cas. D'ailleurs, qu'est-ce que ça voudrait dire, d'après toi, de copier un ofstream ? La seule interprétation raisonnable que je vois, ce serait de recopier le fichier à l'identique, avec le même nom. Or, sur la plupart des systèmes, deux fichiers ne peuvent avoir le même nom.
-- ;-)
kanze
Anne Sophie Tranchant wrote:
J'ai un flot (ofstream) comme attribut d'une classe. Je ne sais pas comment le recopier dans mon constructeur par recopie, l'operateur = ne fonctionne pas (il est apparemment prive). Quelqu'un saurait-il comment faire mon constructeur par recopie ?
Ça dépend de la sémantique voulue. Une copie d'un flux n'a en principe aucun sens, mais selon les cas :
-- on peut utiliser un flux alloué dymaiquement, avec un boost::shared_ptr ou quelque chose de semblable qui lui pointe, ou
-- on peut définir une sémantique -- si le flux est toujours un fstream, par exemple, on ouvre un nouveau instance avec le même nom de fichier, et on fait un seek à la position où on se trouve dans le premier flux.
Ou autre choses encore. Définir la sémantique que tu veux, et on doit pouvoir l'implémenter.
Ceci dit, dans les objets que j'ai eu qui ont contenu un flux, il ne m'est jamais encore arrivé de vouloir les copier.
-- James Kanze GABI Software Conseils en informatique orientée objet/ Beratung in objektorientierter Datenverarbeitung 9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34
Anne Sophie Tranchant wrote:
J'ai un flot (ofstream) comme attribut d'une classe. Je ne
sais pas comment le recopier dans mon constructeur par
recopie, l'operateur = ne fonctionne pas (il est apparemment
prive). Quelqu'un saurait-il comment faire mon constructeur
par recopie ?
Ça dépend de la sémantique voulue. Une copie d'un flux n'a en
principe aucun sens, mais selon les cas :
-- on peut utiliser un flux alloué dymaiquement, avec un
boost::shared_ptr ou quelque chose de semblable qui lui
pointe, ou
-- on peut définir une sémantique -- si le flux est toujours un
fstream, par exemple, on ouvre un nouveau instance avec le
même nom de fichier, et on fait un seek à la position où on
se trouve dans le premier flux.
Ou autre choses encore. Définir la sémantique que tu veux, et on
doit pouvoir l'implémenter.
Ceci dit, dans les objets que j'ai eu qui ont contenu un flux,
il ne m'est jamais encore arrivé de vouloir les copier.
--
James Kanze GABI Software
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34
J'ai un flot (ofstream) comme attribut d'une classe. Je ne sais pas comment le recopier dans mon constructeur par recopie, l'operateur = ne fonctionne pas (il est apparemment prive). Quelqu'un saurait-il comment faire mon constructeur par recopie ?
Ça dépend de la sémantique voulue. Une copie d'un flux n'a en principe aucun sens, mais selon les cas :
-- on peut utiliser un flux alloué dymaiquement, avec un boost::shared_ptr ou quelque chose de semblable qui lui pointe, ou
-- on peut définir une sémantique -- si le flux est toujours un fstream, par exemple, on ouvre un nouveau instance avec le même nom de fichier, et on fait un seek à la position où on se trouve dans le premier flux.
Ou autre choses encore. Définir la sémantique que tu veux, et on doit pouvoir l'implémenter.
Ceci dit, dans les objets que j'ai eu qui ont contenu un flux, il ne m'est jamais encore arrivé de vouloir les copier.
-- James Kanze GABI Software Conseils en informatique orientée objet/ Beratung in objektorientierter Datenverarbeitung 9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34