Bonjour, je possède plusieurs classes que je dois afficher, j'ai donc créé, pour chacun de ses classes, les méthodes suivantes :

Code C++ : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
ofstream& operator<<(ofstream& os, const Variable& uneVariable)
{
    uneVariable.afficher(os);
    return os;
}
 
void Variable::afficher(ofstream& os) const
{
    os << sonTypeRetour.c_str() << ' ' << sonNom;
}

Le problème que je rencontre c'est quand je veux utiliser à fond les opérateurs << pour écrire dans le fichier, comme ceci :

Code C++ : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
void foo(ofstream& os, Variable& uneVariable)
{
    os << uneVariable << endl; // Pas d'erreur
    os << " " << uneVariable << endl; // Erreur !!!
}

Je ne comprends pas pourquoi le " " fait tout planter

Code d'erreur :

error: no match for 'operator<<' in 'std::operator<< [with _Traits = std::char_traits<char>](((std::basic_ostream<char, std::char_traits<char> >&)(&((std::ofstream*)os)->std::basic_ofstream<char, std::char_traits<char> >::<anonymous>)), ((const char*)" ")) << uneVariable'|
Si vous avez besoin de plus de détails n'hésitez pas
Merci pour votre aide