 |
C++Talk.NET C++ language newsgroups
|
| View previous topic :: View next topic |
| Author |
Message |
Etienne Rousee Guest
|
Posted: Thu Feb 12, 2004 12:23 am Post subject: Pb avec fstream |
|
|
Bonjour,
Quelqu'un pourrait-il me dire pourquoi ce
code ne passe pas à la compilation:
#include <fstream.h>
class A
{
public:
A(ifstream f) { }
};
void toto(void)
{
ifstream fic;
A a(fic); // Tentative d'accès à des données privées ???
}
int main(void)
{
return 0;
}
Etienne
|
|
| Back to top |
|
 |
Samuel Krempp Guest
|
Posted: Thu Feb 12, 2004 2:04 am Post subject: Re: Pb avec fstream |
|
|
Bonjour,
le Thursday 12 February 2004 01:23, [email]etienne.rousee (AT) wanadoo (DOT) fr[/email] écrivit :
| Quote: | Quelqu'un pourrait-il me dire pourquoi ce
code ne passe pas à la compilation:
#include
class A
{
public:
A(ifstream f) { }
|
voilà c'est tout simple : cette fonction prend un parametre ifstream par
valeur, ce qui veut donc dire que le constructeur de copie de fstream est
appelé quand tu l'appelles, et on ne peut pas copier un fstream. (déclarer
le cteur de copie privé est une façon de l'imposer)
as-tu des documents sur la standard library C++ ? le bouquin de josuttis, la
doc de ton compilo, la doc en ligne de dinkumware ou de roguewave ou de la
STL de SGI...
tu devrais regarder ce qui est dit concernant les streams.
--
Sam
|
|
| Back to top |
|
 |
Etienne Rousee Guest
|
Posted: Thu Feb 12, 2004 9:08 am Post subject: Re: Pb avec fstream |
|
|
"Samuel Krempp" <krempp (AT) crans (DOT) truc.en.trop.ens-cachan.fr> a écrit..
| Quote: | le Thursday 12 February 2004 01:23, [email]etienne.rousee (AT) wanadoo (DOT) fr[/email] écrivit :
Quelqu'un pourrait-il me dire pourquoi ce
code ne passe pas à la compilation:
#include
class A
{
public:
A(ifstream f) { }
voilà c'est tout simple : cette fonction prend un parametre ifstream par
valeur, ce qui veut donc dire que le constructeur de copie de fstream est
appelé quand tu l'appelles, et on ne peut pas copier un fstream. (déclarer
le cteur de copie privé est une façon de l'imposer)
|
Merci, bien sûr, j'aurais du y penser.
Il suffit de passer le paramètre par référence.
Etienne
|
|
| Back to top |
|
 |
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|