Je dois passer un pointeur de fonction d'une fonction membre à une autre classe. Je n'ai pas pu le compiler et j'ai l'erreur "référence non définie à classB :: classB (classA :: *) (std :: shared_ptr)". Quelqu'un peut il m'aider avec ça?Passer la fonction membre au pointeur de fonction
Merci.
classA{
string functionA(share_ptr<int>);
void functionB(){
classB* ptr = new classB(&classA::functionA);
}
}
//in other .h file
classA; //forward declaration
classB{
classB(string (classA::*funcPtr)(shared_ptr<int>); //constructor
}
Je l'ai eu ... il s'est avéré être la syntaxe correcte .. est juste que je n'ai pas nettoyer un ancien fichier avant de le compiler à nouveau .. gaspillé mes heures sur ce .. – Steveng
une chose est votre constructeur Il manque une parenthèse fermante. De plus, il serait utile que vous ayez aussi posté votre fichier .cpp puisque l'entête n'affiche pas une implémentation du constructeur de classB. – Will
-1 informations incorrectes et incomplètes dans la question. le code n'est pas votre code actuel. il ne devrait même pas compiler. et le code présenté n'est pas assez complet pour dire de quoi provient votre erreur de lien. –