Bonjour,

J'ai déclaré une classe destinée à lire un fichier ASCII avec <fstream> comme ceci:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
class Simple {
		string chaine;
	public:
		Simple ( string initial_chaine);
		~Simple();
		// methode lit une ligne
		void reads_a_line( fstream one_file )
			{
				string une_ligne;
				getline ( one_file, une_ligne );
			}
		// method affiche une ligne
		string printsimple( string mystring ){
			string fin = " enfin";
			return ( mystring +  fin);
		}
};
Ensuite j'essaie de lire puis d'afficher comme ceci:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
	// meme lecture mais avec data et method de la classe
	fstream myFile2;
	myFile2.open( "le_fichier_a_skis.txt", ios::in );
	while ( ! myFile2.eof() )
	{
		s.reads_a_line( myFile2 );
		//cout << s.printsimple( s.chaine ) << endl;
	}
	myFile2.close();
La compile génère ces messages:
C:\jbmorla\data\sources\cplusplus\VASILIU\fich_dyn>make a=simple
g++ -g -Wall -MD -c Simple.cpp -o Simple.o
Simple.cpp: In copy constructor `std::basic_ios<char, std::char_traits<char> >::
basic_ios(const std::basic_ios<char, std::char_traits<char> >&)':
C:/Program Files/CodeBlocks/bin/../lib/gcc/mingw32/3.4.4/../../../../include/c++
/3.4.4/bits/ios_base.h:781: error: `std::ios_base::ios_base(const std::ios_base&
)' is private
Simple.cpp:55: error: within this context
Simple.cpp: In copy constructor `std::basic_filebuf<char, std::char_traits<char>
>::basic_filebuf(const std::basic_filebuf<char, std::char_traits<char> >&)':
C:/Program Files/CodeBlocks/bin/../lib/gcc/mingw32/3.4.4/../../../../include/c++
/3.4.4/streambuf:769: error: `std::basic_streambuf<_CharT, _Traits>::basic_strea
mbuf(const std::basic_streambuf<_CharT, _Traits>&) [with _CharT = char, _Traits
= std::char_traits<char>]' is private
Simple.cpp:55: error: within this context
Simple.cpp: In function `int main(int, char**)':
Simple.cpp:55: error: initializing argument 1 of `void Simple::reads_a_line(st
d::fstream)'
make: *** [Simple.o] Error 1
Auxquels je ne comprends goutte, sinon que j'essaie d'accéder à quelquechose de "private", mais quoi? (la ligne 55 est la fin du source)

En fait je voudrais que la classe "Simple" lise depuis le fichier dans la string private "chaine", pour que ça ressemble à de l'Objet.

So Houston I have a problem!!!

Merci si vous avez une idée

Bonne journée.