C ++ Fehler Keine Übereinstimmungsfunktion für den Aufruf

C ++ Fehler Keine Übereinstimmungsfunktion für den Aufruf
Keine Übereinstimmungsfunktion für Anrufe bedeutet, dass wir bestimmte Funktionen aufrufen, aber die ID dieser Funktion entspricht nicht dem Argument der definierten Funktion. Daher erhalten wir einen Fehler "Keine Übereinstimmungsfunktion für einen Aufruf nach C"++. Wenn der Compiler feststellt, dass es keine Übereinstimmungsmethoden gibt, zeigt er im Allgemeinen an, dass der Compiler eine Methode nach dem identischen Namen identifiziert hat, wie wir die Parameter an die Funktion gegeben haben.

Wenn wir also weiterhin die angegebene Methode des falschen Typs oder der unangemessenen Parametermenge an die Funktion übergeben. Eine Funktionsdefinition gibt den Namen der Methode für den Compiler sowie den Aufruf an. Der gesamte Inhalt der Funktion wird explizit deklariert. In diesem Artikel werden wir darüber sprechen, wie der Fehler "keine Übereinstimmung für einen Aufruf" in C erscheint++.

Verwenden Sie das Objekt der Klasse

In diesem Szenario stimmt der Funktionsparameter während des Anrufs nicht überein. Daher werden wir versuchen, Hinweise zu übergeben, bei denen Referenzen benötigt werden, und verschiedene Klassenreferenztypen in Funktionsaufrufen verwenden. Wenn wir die Funktion aufrufen, aber die Funktionsdefinition des Arguments nicht übereinstimmt.

Jetzt müssen wir den Fehler beheben; Zu diesem Zweck geben wir während der Definition der Funktion nur den geeigneten Parameter für den Matching an. Der Code zusammen mit seiner detaillierten Beschreibung ist darunter zu sehen.

Zu Beginn des Codes werden wir die Bibliothek einbeziehen, die für Eingabe- und Ausgabefunktionen verwendet wird. Wir verwenden auch einen Standard -Namespace. Dann haben wir die Klasse mit dem Namen 'a' initialisiert und die Funktion SetValue () öffentlich angegeben. Wir übergeben den Wertparameter mit dem Datentyp der Ganzzahl an diese Funktion. Wir haben auch einen variablen "Wert" der Klasse mit einem ganzzahligen Datentyp initialisiert.

In der nächsten Zeile rufen wir eine andere Funktion SetValue () auf. Diese Methode hält den variablen "Wert" als Argument. Wir steigen im Wert an, der als Argumente übergeben wurde. Dann nennen wir die main () -Funktion und erhalten 'argc' mit ganzzahliger Datentyp und 'argv' Zeiger des Zeichendatentyps als Argumente. Das 'argc' ist das Nein. von Parametern, die im Code aus dem Betriebssystem bereitgestellt werden. Das 'Argv' ist die Sammlung von Parametern.

Jetzt erstellen wir ein Objekt 'obj' der Klasse 'a.'Wir rufen die Methodenfunktion setValue () auf. Das 'Obj' wird als Argumente verabschiedet. Aber wir haben das Objekt nicht mit der Klasse verbunden. Aus diesem Grund gibt es beim Aufrufen der Funktion setValue () einen Fehler zurück, da wir diese Klasse nicht haben, in der wir die Funktion setValue () aufrufen. Im obigen Code übergeben wir ein Klassenobjekt innerhalb der Funktion "SetValue () -Funktion auf, die das Argument aufruft. Wenn wir jedoch die Funktionsdefinition setValue () einchecken, nehmen wir den Passing -Argumentwert als Ganzzahl an. Um den Code zu beenden, verwendeten wir den Befehl 'return 0'. Hier kann die Ausgabe des oben genannten Codes verifiziert werden.

Wir erhalten den Fehler 'Keine Übereinstimmungsfunktion für den Anruf nach A' nach der Ausführung des oben genannten Code.

So beheben Sie diesen Fehler?

Um diesen Fehler während des Methodenaufrufs zu beheben, müssen wir der Funktion angemessene entsprechende Parameter bereitstellen. Die andere Möglichkeit, diesen Fehler aufzulösen, besteht darin, unterschiedliche überlastete Funktionen zu erstellen. Hier ändern wir nur das Argument der Funktion main (). Somit würde 'keine Übereinstimmungsfunktion für den Aufruf an C ++ - Fehler entfernt. Der Code zusammen mit seiner detaillierten Beschreibung ist darunter zu sehen.

Nachdem wir den Standard -Namespace verwendet haben, stellen wir die Header -Datei vor . Wir haben eine Klasse namens 'a' erstellt und ihre Funktion setValue () öffentlich gemacht. Diese Funktion empfängt den Variablen "Wert" als Parameter, der die Datentyp -Ganzzahl hat. Wir haben auch eine Ganzzahl -Datentypvariable initialisiert, die als "Wert" in der Klasse bezeichnet wird. Diese Variable ist auch veröffentlicht. Die nächste Zeile ruft eine andere Funktion namens setValue () auf. Der Variablenwert mit dem Datentyp -Ganzzahl wird in dieser Funktion als Parameter bereitgestellt. Wir erhöhen den Wert, der als einer der Eingaben geliefert wurde.

Im nächsten Schritt rufen wir die Main () -Methode auf. In der main () -Funktion werden wir "Argc" des Ganzzahl -Datentyps und "Argv" des Charakters Datentyp als Argumente bereitstellen. Das 'Argc' zeigt die Anzahl der vom Betriebssystem im Programm bereitgestellten Parameter. Das 'Argv' ist eine Parametersammlung. Jetzt machen wir ein Objekt der Klasse 'a' bezeichnet 'OBJ.'Wir haben den Variablenwert mit dem Ganzzahl -Datentyp initialisiert. Wir haben die SetValue () -Methode des Objekts verwendet und den "Wert" als Parameter dieser Funktion festgelegt.

Am Ende fügen wir "return 0" hinzu, um das Programm zu schließen. Denken Sie daran, dass wir dieselben Datentypen der Funktionen und ihrer Argumente in der Funktion main () eingeben müssen. Dann haben wir diese Funktion an ihr Objekt übergeben und sie zurückgegeben. Hier kann die Ausgabe des oben genannten Codes verifiziert werden.

Abschluss

In diesem Artikel haben wir die Gründe für den Fehler "Keine Übereinstimmungsfunktion für einen Anruf" untersucht, und wie dies behoben werden soll. Wann immer wir diesen Fehler erhalten, müssen wir die Parameter der erforderlichen Methoden sowie deren Datentyp überprüfen. Wir machen Fehler und liefern die Argumente für die Funktionsargumente. Wir fangen die Parameter zur Funktion nicht an. Möglicherweise müssen wir die angegebene Methode den übereinstimmenden Parameter geben. Oder wir müssen eine neue Funktion mit demselben Datentyp hinzufügen. Nach Überprüfung und Hinzufügen geeigneter Parameter zur Funktion im Programm wird der Fehler „keine Übereinstimmungsfunktion für einen Aufruf“ behoben.