Erro C ++ Sem função de correspondência para chamada

Erro C ++ Sem função de correspondência para chamada
Nenhuma função de correspondência para a chamada significa quando estamos chamando algumas determinadas funções, mas o ID dessa função não está correspondendo ao argumento da função que é definida. Portanto, obtemos um erro 'sem função correspondente para uma chamada' para c++. Sempre que o compilador afirma que não há métodos de correspondência, geralmente indica que o compilador identificou um método pelo nome idêntico, como tínhamos dado os parâmetros à função.

Portanto, quando continuamos a passar o método especificado do tipo incorreto ou o conjunto inadequado de parâmetros para a função. Uma definição de função especifica o nome do método para o compilador, bem como como invocá -lo. Todo o conteúdo da função está sendo declarado explicitamente. Neste artigo, falaremos sobre como o erro 'Nenhuma função de correspondência para uma chamada' aparece em C++.

Use objeto da classe

Nesse cenário, o parâmetro de função não está correspondendo durante a chamada, por isso tentaremos passar ponteiros onde são necessárias referências e usar diferentes tipos de referência de classe em chamadas de função. Sempre que invocamos a função, mas a definição de função do argumento não está sendo correspondente, o erro 'Nenhuma função correspondente para chamada para C ++' é aumentada.

Agora temos que corrigir o erro; Para esse fim, apenas fornecemos o parâmetro correspondente adequado durante a definição da função. O código, juntamente com sua descrição detalhada, pode ser visto embaixo.

No início do código, incluiremos a biblioteca, que é usada para funcionalidades de entrada e saída. Também utilizamos um espaço de nome padrão. Em seguida, inicializamos a classe com o nome de 'a' e especificamos o público da função setValue (). Estamos passando o parâmetro de valor com o tipo de dados de dados para esta função. Também inicializamos uma variável 'valor' da classe que possui um tipo de dados inteiro.

Na linha seguinte, invocamos outra função SetValue (). Este método mantém a variável 'valor' como seu argumento. Nós aumentamos o valor que foi aprovado como seus argumentos. Então chamamos a função principal () e recebemos 'argc' com o tipo de dados inteiro e o ponteiro 'argv' do tipo de dados de caracteres como seus argumentos. O 'argc' é o não. de parâmetros fornecidos no código do sistema operacional. O 'argv' é a coleção de parâmetros.

Agora criamos um objeto 'obj' da classe 'a.'Invocamos a função Method SetValue (). O 'obj' é passado como seus argumentos. Mas não conectamos o objeto à classe. É por isso que quando chamamos a função setSetValue (), ele retorna um erro porque não temos essa classe em que invocamos a função setValue (). No código acima, estamos passando um objeto de classe dentro do argumento de chamada de função setValue (), mas se verificarmos a definição de função setValue (), assumimos que o valor do argumento passante como um número inteiro. Para encerrar o código, utilizamos o comando 'retornar 0'. Aqui a saída do código acima mencionado pode ser verificado.

Obtemos o erro 'Nenhuma função de correspondência para chamada para' depois de executar o código acima mencionado.

Como resolver este erro?

Para corrigir esse erro durante a chamada do método, devemos fornecer parâmetros correspondentes adequados à função. A outra maneira de resolver esse erro é fazer diferentes funções sobrecarregadas têm parâmetros diferentes. Aqui apenas modificamos o argumento da função main (). Assim, 'nenhuma função correspondente para a chamada' ao erro C ++ seria removido. O código, juntamente com sua descrição detalhada, pode ser visto embaixo.

Depois de usar o espaço para nome padrão, apresentamos o arquivo de cabeçalho . Construímos uma classe chamada 'A' e fizemos sua função setValue () pública. Esta função recebe a variável 'valor' como um parâmetro, que possui o tipo de dados inteiro. Também inicializamos uma variável de tipo de dados inteiro chamado 'valor' na classe. Esta variável também é definida pública. A próxima linha chama outra função chamada setValue (). A variável 'valor' com o número de dados é fornecida como um parâmetro nesta função. Aumentamos o valor que foi fornecido como uma das entradas.

Na próxima etapa, invocamos o método principal (). Dentro da função Main (), forneceremos 'argc' do tipo de dados inteiro e 'argv' do tipo de dados de caracteres como seus argumentos. O 'ARGC' mostra o número de parâmetros fornecidos pelo sistema operacional no programa. O 'argv' é uma coleção de parâmetros. Agora vamos fazer um objeto da classe 'a' denominada 'obj.'Inicializamos a variável' valor 'com o tipo de dados inteiro. Utilizamos o método setValue () do objeto e definimos o 'valor' como parâmetros desta função.

No final, adicionamos 'retornar 0' para fechar o programa. Lembre -se de que devemos inserir os mesmos tipos de dados das funções e seus argumentos na função principal (). Então passamos essa função para seu objeto e o devolvemos. Aqui a saída do código acima mencionado pode ser verificado.

Conclusão

Neste artigo, exploramos os motivos para obter o erro 'sem função correspondente para uma chamada' e como resolver isso. Sempre que recebemos esse erro, precisamos verificar os parâmetros dos métodos necessários, bem como seu tipo de dados. Cometemos erros enquanto fornecemos os argumentos aos argumentos da função. Nós incompatamos os parâmetros da função. Podemos ser obrigados a fornecer o parâmetro correspondente ao método especificado. Ou temos que adicionar uma nova função com o mesmo tipo de dados. Depois de verificar e adicionar parâmetros adequados à função no programa, o erro: 'Nenhuma função de correspondência para uma chamada' será resolvida.