Error de C ++ No hay función coincidente para la llamada

Error de C ++ No hay función coincidente para la llamada
No hay función de coincidencia para la llamada significa cuando llamamos a ciertas funciones, pero la identificación de esa función no coincide con el argumento de la función que se define. Por lo tanto, obtenemos un error 'sin función de coincidencia para una llamada' a c++. Cada vez que el compilador establece que no hay métodos de coincidencia, generalmente indica que el compilador identificó un método por el nombre idéntico como si hubiéramos dado los parámetros a la función.

Entonces, cuando continuamos pasando el método especificado del tipo incorrecto o el conjunto inapropiado de parámetros a la función. Una definición de función especifica el nombre del método al compilador y cómo invocarlo. Todo el contenido de la función se está declarando explícitamente. En este artículo, hablaremos sobre cómo aparece el error 'sin función de coincidencia para una llamada' en C++.

Use el objeto de la clase

En este escenario, el parámetro de la función no coincide durante la llamada, por lo que intentaremos pasar punteros donde se necesitan referencias y usar diferentes tipos de referencia de clase en llamadas a funciones. Cada vez que invocamos la función, pero la definición de la función del argumento no se coincide, entonces se plantea el error 'No coincidir la función para la llamada a C ++'.

Ahora tenemos que corregir el error; Para este propósito, solo proporcionamos el parámetro de coincidencia adecuado durante la definición de la función. El código, junto con su descripción detallada, se puede ver debajo.

Al comienzo del código, vamos a incluir la biblioteca, que se utiliza para funcionalidades de entrada y salida. También utilizamos un espacio de nombres estándar. Luego inicializamos la clase con el nombre de 'a' y especificamos la función setValue () pública. Estamos pasando el parámetro de valor con el tipo de datos de entero a esta función. También inicializamos una variable 'valor' de la clase que tiene un tipo de datos enteros.

En la siguiente línea, invocamos otra función setValue (). Este método contiene la variable 'valor' como argumento. Hacemos incrementos en el valor que se aprobó como argumentos. Luego llamamos a la función Main (), y se nos da 'argc' que tiene un tipo de datos enteros y un puntero 'argv' del tipo de datos de caracteres como argumentos. El 'argc' es el no. de parámetros que se proporcionan en el código del sistema operativo. El 'argv' es la colección de parámetros.

Ahora creamos un objeto 'obj' de la clase 'a.'Invocamos la función de método setValue (). El 'obj' se pasa como sus argumentos. Pero no conectamos el objeto con la clase. Es por eso que cuando llamamos a la función setValue (), devuelve un error porque no tenemos esa clase donde invocamos la función setValue (). En el código anterior, estamos pasando un objeto de clase dentro del argumento de la función setValue (), pero si verificamos la definición de función setValue (), asumimos el valor del argumento de aprobación como un entero. Para finalizar el código, utilizamos el comando 'return 0'. Aquí se puede verificar la salida del código indicado.

Obtenemos el error 'No hay función de coincidencia para llamar a un' después de ejecutar el código mencionado anteriormente.

Cómo resolver este error?

Para corregir este error durante la llamada de método, debemos proporcionar parámetros correspondientes adecuados a la función. La otra forma de resolver este error es hacer que diferentes funciones sobrecargadas tengan diferentes parámetros. Aquí solo modificamos el argumento de la función main (). Por lo tanto, 'no se eliminaría la función coincidente para la llamada' a C ++. El código, junto con su descripción detallada, se puede ver debajo.

Después de usar el espacio de nombres estándar, presentamos el archivo de encabezado . Construimos una clase llamada 'A' e hicimos su función setValue () pública. Esta función recibe la variable 'valor' como un parámetro, que tiene el tipo entero de tipo de datos. También inicializamos una variable de tipo de datos enteros llamado 'valor' en la clase. Esta variable también se establece pública. La siguiente línea llama a otra función llamada setValue (). La variable 'valor' que tiene el entero de tipo de datos se proporciona como un parámetro en esta función. Aumentamos el valor que se suministró como una de las entradas.

En el siguiente paso, invocamos el método Main (). Dentro de la función main (), proporcionaremos 'argc' del tipo de datos enteros y 'argv' del tipo de datos de caracteres como argumentos. El 'Argc' muestra el número de parámetros proporcionados por el sistema operativo en el programa. El 'argv' es una colección de parámetros. Ahora haremos un objeto de la clase 'A' denominado obj.'Inicializamos la variable' valor 'con el tipo de datos enteros. Hemos utilizado el método setValue () del objeto y establecer el 'valor' como parámetros de esta función.

Al final, agregamos 'return 0' para cerrar el programa. Recuerde que debemos ingresar los mismos tipos de datos de las funciones y sus argumentos en la función principal (). Luego hemos pasado esa función a su objeto y la devolvimos. Aquí se puede verificar la salida del código indicado.

Conclusión

En este artículo, hemos explorado las razones para obtener el error 'sin función de coincidencia para una llamada' y cómo resolver esto. Cada vez que recibimos este error, entonces tenemos que verificar los parámetros de los métodos requeridos, así como su tipo de datos. Cometemos errores mientras proporcionamos los argumentos a los argumentos de la función. No coincidimos con los parámetros a la función. Es posible que debamos dar el parámetro coincidente al método especificado. O tenemos que agregar una nueva función con el mismo tipo de datos. Después de verificar y agregar parámetros adecuados a la función en el programa, el error, 'no se resolverá la función de coincidencia para una llamada'.