J'essaie d'appeler une fonction non-membre d'une classe dérivée d'une classe de base, mais obtenir cette erreur:Accès à une fonction non-membre d'une classe dérivée d'une classe de base
error: no matching function for call to 'generate_vectorlist(const char&)'
est ici les extraits de code pertinents de la classe de base:
//Element.cpp
#include "Vector.h"
...
string outfile;
cin >> outfile;
const char* outfile_name = outfile.c_str();
generate_vectorlist(*outfile_name); //ERROR
...
et la classe dérivée (ce qui est une classe de modèle, de sorte que tout est dans l'en-tête):
//Vector.h
template <class T>
void generate_vectorlist(const char* outfile_name = "input.txt")
{
std::ofstream vectorlist(outfile_name);
if (vectorlist.is_open())
for (Element::vciter iter = Element::vectors.begin(); iter!=Element::vectors.end(); iter++)
{
Vector<T>* a = new Vector<T>(*iter);
vectorlist << a->getx() << '\t' << a->gety() << '\t'<< a->getz() << std::endl;
delete a;
}
else { std::cout << outfile_name << " cannot be opened." << std::endl;}
vectorlist.close();
}
Je suppose qu'il y a juste une petite syntaxe qui me manque. Des idées?
"une fonction non-membre d'une classe dérivée" Qu'est-ce que c'est? Les classes ne peuvent pas avoir de fonctions non-membres; la définition d'une fonction non membre est que ce n'est pas un membre. Voulez-vous dire une fonction de membre statique? –
La fonction non-membre d'une classe dérivée est un mauvais terme pour "la fonction non-membre définie dans un en-tête/un fichier source spécifique". Si cela signifie une fonction de membre statique, alors oui, oui je voulais dire ça! –