Erreur C ++ Pas de fonction de correspondance pour l'appel

Erreur C ++ Pas de fonction de correspondance pour l'appel
Aucune fonction de correspondance pour l'appel signifie lorsque nous appelons certaines fonctions, mais l'ID de cette fonction ne correspond pas à l'argument de la fonction définie. Par conséquent, nous obtenons une erreur d'erreur «Aucune fonction de correspondance pour un appel» à C++. Chaque fois que le compilateur indique qu'il n'y a pas de méthodes de correspondance, il indique généralement que le compilateur a identifié une méthode par le nom identique comme nous avions donné les paramètres à la fonction.

Ainsi, lorsque nous continuons à passer la méthode spécifiée du type incorrect ou l'ensemble inapproprié de paramètres à la fonction. Une définition de fonction spécifie le nom de la méthode au compilateur ainsi que comment l'invoquer. L'ensemble du contenu de la fonction est déclaré explicitement. Dans cet article, nous parlerons de la façon dont l'erreur `` Aucune fonction de correspondance pour un appel '' apparaît en C++.

Utilisez l'objet de la classe

Dans ce scénario, le paramètre de fonction ne correspond pas pendant l'appel, nous essaierons donc de passer des pointeurs où des références sont nécessaires et utiliser différents types de référence de classe dans les appels de fonction. Chaque fois que nous invoquons la fonction mais que la définition de la fonction de l'argument n'est pas appariée, alors l'erreur «Aucune fonction de correspondance pour l'appel à C ++» est soulevée.

Nous devons maintenant corriger l'erreur; À cette fin, nous fournissons simplement le paramètre correspondant approprié pendant la définition de la fonction. Le code, ainsi que sa description détaillée, peuvent être vus en dessous.

Au début du code, nous allons inclure la bibliothèque, qui est utilisée pour les fonctionnalités d'entrée et de sortie. Nous utilisons également un espace de noms standard. Ensuite, nous avons initialisé la classe avec le nom de «A» et nous avons spécifié la fonction setValue () public. Nous transmettons le paramètre de valeur avec le type de données entier à cette fonction. Nous avons également initialisé une «valeur» variable de la classe qui a un type de données entier.

Dans la ligne suivante, nous invoquons une autre fonction setValue (). Cette méthode contient la variable «valeur» comme argument. Nous faisons une augmentation de la valeur qui a été adoptée comme ses arguments. Ensuite, nous appelons la fonction principale (), et on nous donne «Argc» ayant un type de données entier et le pointeur «argv» du type de données de caractère comme arguments. Le «Argc» est le non. des paramètres fournis dans le code du système d'exploitation. Le «Argv» est la collection de paramètres.

Maintenant, nous créons un objet 'obj' de la classe 'a.'Nous invoquons la fonction de méthode setValue (). Le «OBJ» est adopté comme ses arguments. Mais nous n'avons pas connecté l'objet à la classe. C'est pourquoi lorsque nous appelons la fonction setValue (), il renvoie une erreur car nous n'avons pas cette classe où nous invoquons la fonction setValue (). Dans le code ci-dessus, nous passons un objet de classe dans l'argument de la fonction setValue (), mais si nous vérifions la définition de la fonction setValue (), nous supposons la valeur d'argument de passage en tant qu'entier. Pour résilier le code, nous avons utilisé la commande 'return 0'. Ici, la sortie du code indiqué ci-dessus peut être vérifiée.

Nous obtenons la fonction d'erreur «Pas de correspondance pour un appel à un« après avoir exécuté le code susmentionné.

Comment résoudre cette erreur?

Pour corriger cette erreur pendant l'appel de la méthode, nous devons fournir des paramètres correspondants adéquats à la fonction. L'autre façon de résoudre cette erreur est de faire que différentes fonctions surchargées ont des paramètres différents. Ici, nous modifions simplement l'argument de la fonction main (). Ainsi, «aucune fonction de correspondance pour l'erreur de l'appel» à C ++ ne serait supprimée. Le code, ainsi que sa description détaillée, peuvent être vus en dessous.

Après avoir utilisé l'espace de noms standard, nous introduisons le fichier d'en-tête . Nous avons construit une classe nommée «A» et avons rendu sa fonction setValue () public. Cette fonction reçoit la variable «valeur» en tant que paramètre, qui a le type de données entier. Nous avons également initialisé une variable de type de données entier appelée «valeur» dans la classe. Cette variable est également définie publique. La ligne suivante appelle une autre fonction appelée setValue (). La variable «valeur» ayant l'intégralité de type de données est fournie comme un paramètre dans cette fonction. Nous augmentons la valeur fournie comme l'une des entrées.

À l'étape suivante, nous invoquons la méthode principale (). Dans la fonction Main (), nous fournirons «Argc» du type de données entier et «Argv» du type de données de caractère comme arguments. Le «Argc» montre le nombre de paramètres fournis par le système d'exploitation dans le programme. Le «Argv» est une collection de paramètres. Maintenant, nous ferons un objet de la classe «un» OBJ.'Nous avons initialisé la variable «valeur» avec le type de données entier. Nous avons utilisé la méthode setValue () de l'objet et définir la «valeur» comme paramètres de cette fonction.

En fin de compte, nous ajoutons «retour 0» pour fermer le programme. N'oubliez pas que nous devons saisir les mêmes types de données des fonctions et leurs arguments dans la fonction principale (). Ensuite, nous avons passé cette fonction à son objet et l'avons renvoyée. Ici, la sortie du code indiqué ci-dessus peut être vérifiée.

Conclusion

Dans cet article, nous avons exploré les raisons d'obtenir l'erreur «pas de fonction de correspondance pour un appel» et comment résoudre ceci. Chaque fois que nous recevons cette erreur, nous devons vérifier les paramètres des méthodes requises ainsi que leur type de données. Nous faisons des erreurs tout en fournissant les arguments aux arguments de la fonction. Nous incompensons les paramètres de la fonction. Nous pourrions être tenus de donner le paramètre apparié à la méthode spécifiée. Ou nous devons ajouter une nouvelle fonction avec le même type de données. Après avoir vérifié et ajouté des paramètres appropriés à la fonction du programme, l'erreur, «Aucune fonction de correspondance pour un appel» ne sera résolue.