Incompatible déclaration de fonction

Je suis coincé, pourquoi j'obtiens une erreur: déclaration est incompatible...

"void A::fonction(int,int,std::vector<_Ty> *)' : la fonction membre surchargée ne trouve pas dans 'A'
error C2061: erreur de syntaxe : identificateur "vecteur"
1> avec
1> [
1> _Ty=Point
1> ]

//cpp file
void A::function(int a, int b, vector<B> *p)
{    

}

//header file

class B
{
public:
     int q;
};
class A
{     
public:    
     void function(int a, int b, vector<B> *p);    
};
  • L'appel est maintenant la même que le prototype pourtant, il existe toujours une erreur
  • Pouvez-vous poster le A::function decleration dans un fichier cpp? Et pourquoi est classe B?
  • Edit: la fonction est protégée
  • Vous ne pouvez pas appeler une fonction protégée (sauf au sein de la classe ou des fils et des amis). La protection d'une fonction est un moyen pour vous permettre d'éviter de l'appeler (sauf dans les lieux mentionnés) et de le laisser être héritée.
  • Edit: la fonction est maintenant public avec l'erreur
  • Merci de Poster l'erreur, si possible.
  • void A::fonction(int,int,std::vector<_Ty> *)' : la fonction membre surchargée ne trouve pas dans 'Un' error C2061: erreur de syntaxe : identificateur "vecteur"
  • Ajouter #include <vector>.
  • comme sad_man dit, ajouter #include <vector> puis using namespace std; pour le fichier d'en-tête. peut-être aussi que vous avez écrit void A::function(int,int,std::vector<_Ty> *) au lieu de void A::function(int,int,std::vector<B> *) dans un endroit.
  • Ajouté using namespace std à en-tête et cela fonctionne merci

InformationsquelleAutor el_pup_le | 2011-03-17