erreur déclaration d'un attribut ifstream dans une classe
Bonjour,
J'ai écrit la classe simplifiée suivante:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| #ifndef CESAR_H
#define CESAR_H
#include <iostream>
#include <fstream>
#include <string>
#include <vector>
class Cesar
{
public:
Cesar();
Cesar(const std::string);
virtual ~Cesar();
protected:
private:
int m_key;
std::ifstream m_file;
};
#endif // CESAR_H |
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| #include "Cesar.h"
Cesar::Cesar()
{
}
Cesar::Cesar(std::string fichier):
m_key(0)
{
std::cout << fichier << std::endl;
}
Cesar::~Cesar()
{
} |
Et la main suivant:
Code:
1 2 3 4 5 6 7 8 9
| #include <iostream>
#include <string>
#include "Cesar.h"
int main()
{
Cesar a(Cesar("chemin vers un fichier.txt"));
return 0;
} |
Lorsque je compile ça avec mingw32++ dans code::blocks, j'ai l'erreur suivante:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| ||=== Build: Debug in algorithme_de_Cesar (compiler: GNU GCC Compiler) ===|
main.cpp||In function 'int main()':|
main.cpp|7|error: use of deleted function 'Cesar::Cesar(const Cesar&)'|
include\Cesar.h|9|note: 'Cesar::Cesar(const Cesar&)' is implicitly deleted because the default definition would be ill-formed:|
include\Cesar.h|9|error: use of deleted function 'std::basic_ifstream<char>::basic_ifstream(const std::basic_ifstream<char>&)'|
c:\program files (x86)\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.7.1\include\c++\fstream|420|note: 'std::basic_ifstream<char>::basic_ifstream(const std::basic_ifstream<char>&)' is implicitly deleted because the default definition would be ill-formed:|
c:\program files (x86)\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.7.1\include\c++\fstream|420|error: use of deleted function 'std::basic_istream<char>::basic_istream(const std::basic_istream<char>&)'|
c:\program files (x86)\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.7.1\include\c++\istream|56|note: 'std::basic_istream<char>::basic_istream(const std::basic_istream<char>&)' is implicitly deleted because the default definition would be ill-formed:|
c:\program files (x86)\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.7.1\include\c++\istream|56|error: use of deleted function 'std::basic_ios<char>::basic_ios(const std::basic_ios<char>&)'|
c:\program files (x86)\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.7.1\include\c++\bits\basic_ios.h|64|note: 'std::basic_ios<char>::basic_ios(const std::basic_ios<char>&)' is implicitly deleted because the default definition would be ill-formed:|
c:\program files (x86)\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.7.1\include\c++\bits\ios_base.h|788|error: 'std::ios_base::ios_base(const std::ios_base&)' is private|
c:\program files (x86)\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.7.1\include\c++\bits\basic_ios.h|64|error: within this context|
c:\program files (x86)\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.7.1\include\c++\istream|56|error: use of deleted function 'std::basic_ios<char>::basic_ios(const std::basic_ios<char>&)'|
c:\program files (x86)\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.7.1\include\c++\fstream|420|error: use of deleted function 'std::basic_ios<char>::basic_ios(const std::basic_ios<char>&)'|
c:\program files (x86)\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.7.1\include\c++\fstream|420|error: use of deleted function 'std::basic_filebuf<char>::basic_filebuf(const std::basic_filebuf<char>&)'|
c:\program files (x86)\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.7.1\include\c++\fstream|69|note: 'std::basic_filebuf<char>::basic_filebuf(const std::basic_filebuf<char>&)' is implicitly deleted because the default definition would be ill-formed:|
c:\program files (x86)\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.7.1\include\c++\streambuf|800|error: 'std::basic_streambuf<_CharT, _Traits>::basic_streambuf(const __streambuf_type&) [with _CharT = char; _Traits = std::char_traits<char>; std::basic_streambuf<_CharT, _Traits>::__streambuf_type = std::basic_streambuf<char>]' is private|
c:\program files (x86)\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.7.1\include\c++\fstream|69|error: within this context|
||=== Build failed: 11 error(s), 0 warning(s) (0 minute(s), 0 second(s)) ===| |
L'erreur disparait si je commente la déclaration du ifstream (ligne 18 dans Cesar.h)
Une idée du pourquoi svp? :calim2: