Bonjour,
J'ai un petit souci avec des template en C++. J'aimerais enregistrer mon vecteur template sur fichier, celà ne fonctionne pas !
Partie de mon code:
Dans ma classe template:
template <class T>
VecteurTrie<T>::VecteurTrie()
{
data = new T*[4];
}
template <class T>
VecteurTrie<T>::VecteurTrie(char* var)
{
fp.open(var, ios::in | ios::out | ios::trunc);
}
template<class T>
VecteurTrie<T>& VecteurTrie<T>::operator<<(T& val)
{
fp.write ( reinterpret_cast<const char*>
(&val), sizeof(T) ); //Plus violent que static_cast,
reinterpret_cast ne "réfléchit" pas et convertit un pointeur dans un
autre type de pointeur sans problème
return *this;
}
template<class T>
VecteurTrie<T>& VecteurTrie<T>::operator>>(T& val)
{
fp.read ( reinterpret_cast<char*> (&val), sizeof(T) );
return *this;
}
template <class T>
void VecteurTrie<T>::Close()
{
fp.close();
}
Mes appels du Main:
VecteurTrie< Client > Vec;
//Les fichiers
VecteurTrie< Client > fw("Clients.dat");
//Ceci fonctionne bien, j'arrive à compiler et le fichier est créer!
Quand je veux ecrire toujours à partir du Main:
fw << Vec;
// là à la compile il me fait une erreur du type qu'il n'y a pas de d'opérateur "<<" définis pour ces opératnes.
Quelqu'un aurait t'il une idée de ce que je pourrais faire pouvoir ecrire tout mon template Vec sur mon fichier ?
Merci d'avance.
Bon dimanche ....
Simon.
Pourvu que ca dure ...