C ++ Feil ingen matchende funksjon for samtale

C ++ Feil ingen matchende funksjon for samtale
Ingen matchende funksjon for anropsmidler når vi kaller noen visse funksjoner, men ID for den funksjonen samsvarer ikke med argumentet for funksjonen som er definert. Derfor oppnår vi en feil 'Ingen matchende funksjon for en samtale' til C++. Hver gang kompilatoren sier at det ikke er noen samsvarende metoder, indikerer det generelt at kompilatoren identifiserte en metode med det samme navnet som vi hadde gitt parametrene til funksjonen.

Så når vi fortsetter å passere den spesifiserte metoden for feil type eller det upassende settet med parametere til funksjonen. En funksjonsdefinisjon spesifiserer navnet på metoden til kompilatoren, samt hvordan du skal påkalle den. Funksjonens hele innhold blir erklært eksplisitt. I denne artikkelen vil vi snakke om hvordan feilen 'Ingen matchende funksjon for en samtale' vises i C++.

Bruk objektet i klassen

I dette scenariet samsvarer ikke funksjonsparameteren under samtalen, så vi vil prøve å passere pekere der det er behov for referanser og bruker forskjellige klassetranshevingstyper i funksjonssamtaler. Hver gang vi påkaller funksjonen, men funksjonsdefinisjonen av argumentet blir ikke matchet, blir feilen 'ingen matchende funksjon for samtale til C ++' hevet.

Nå må vi fikse feilen; For dette formålet gir vi bare passende samsvarende parameter under definisjonen av funksjonen. Koden, sammen med den detaljerte beskrivelsen, kan sees under.

Ved starten av koden skal vi inkludere biblioteket, som brukes til inngangs- og utgangsfunksjoner. Vi bruker også et standard navneområde. Så initialiserte vi klassen med navnet 'A', og vi spesifiserte funksjonen SetValue () Public. Vi passerer parameteren til verdien med datatypen av heltall til denne funksjonen. Vi initialiserte også en variabel 'verdi' av klassen som har en heltalldatatype.

I neste linje påkaller vi en annen funksjon setValue (). Denne metoden har variabel 'verdi' som argument. Vi øker verdien som ble gitt som argumenter. Så kaller vi Main () -funksjonen, og vi får 'Argc' med heltallsdatatype og 'Argv' peker for karakterdatatype som argumenter. 'Argc' er nei. av parametere som er gitt i koden fra operativsystemet. 'Argv' er samlingen av parametere.

Nå lager vi et objekt 'obj' av klassen 'a.'Vi påkaller metoden setValue () -funksjonen. 'OBJ' sendes som argumenter. Men vi koblet ikke objektet med klassen. Det er grunnen til at når vi kaller funksjonen SetValue (), returnerer den en feil fordi vi ikke har den klassen der vi påkaller SetValue () -funksjonen. I koden ovenfor passerer vi et klasseobjekt innenfor SetValue () -funksjonen Calling Argument, men hvis vi sjekker inn SetValue () -funksjonsdefinisjonen, antar vi den forbipasserende argumentverdien som et heltall. For å avslutte koden, brukte vi kommandoen 'Return 0'. Her kan utgangen fra ovennevnte kode verifiseres.

Vi oppnår feilen 'Ingen matchende funksjon for samtale til en' Etter å ha utført den ovennevnte koden.

Hvordan løse denne feilen?

For å fikse denne feilen under metodesamtalen, må vi gi tilstrekkelige tilsvarende parametere til funksjonen. Den andre måten å løse denne feilen er å lage forskjellige overbelastede funksjoner har forskjellige parametere. Her endrer vi bare argumentet for funksjonen Main (). Dermed "ingen matchende funksjon for samtalen" til C ++ feil vil bli fjernet. Koden, sammen med den detaljerte beskrivelsen, kan sees under.

Etter å ha brukt standard navneområdet, introduserer vi overskriftsfilen . Vi konstruerte en klasse som heter 'A' og gjorde sin funksjon setValue () offentlighet. Denne funksjonen mottar variabel 'verdi' som en parameter, som har datatypen heltall. Vi initialiserte også en heltalldatatypevariabel kalt 'verdi' i klassen. Denne variabelen er også offentliggjort. Neste linje kaller en annen funksjon som heter SetValue (). Variabelen 'verdi' som har datatypen heltallet er gitt som en parameter i denne funksjonen. Vi øker verdien som ble levert som en av inngangene.

I neste trinn påkaller vi Main () -metoden. Innenfor hovedfunksjonen () vil vi gi 'argc' av heltalldatatype og 'argv' av karakterdatatype som argumenter. 'ARGC' viser antall parametere levert av operativsystemet i programmet. 'Argv' er en parametersamling. Nå lager vi et objekt av klassen 'A' kalt 'obj.'Vi initialiserte variabelen' verdien 'med heltalldatatypen. Vi har brukt setValue () -metoden til objektet og satt 'verdien' som parametere for denne funksjonen.

Til slutt legger vi til 'Return 0' for å lukke programmet. Husk at vi må legge inn de samme datatypene for funksjonene og deres argumenter i hovedfunksjonen (). Så har vi gitt den funksjonen til objektet og returnert den. Her kan utgangen fra ovennevnte kode verifiseres.

Konklusjon

I denne artikkelen har vi undersøkt årsakene til å få feilen 'ingen matchende funksjon for en samtale' og hvordan vi kan løse dette. Hver gang vi mottar denne feilen, må vi sjekke parametrene for de nødvendige metodene, så vel som deres datatype. Vi gjør feil mens vi gir argumentene til funksjonsargumentene. Vi misfornader parametrene til funksjonen. Vi kan være pålagt å gi den matchede parameteren til den spesifiserte metoden. Eller vi må legge til en ny funksjon med samme datatype. Etter å ha sjekket og lagt til passende parametere til funksjonen i programmet, vil feilen, 'Ingen matchende funksjon for en samtale' bli løst.