Heim > Backend-Entwicklung > C++ > Hauptteil

Wie behebt man den C++-Kompilierungsfehler: „Keine passende Funktion für Aufruf von „Funktion''?

WBOY
Freigeben: 2023-08-25 16:31:58
Original
8839 Leute haben es durchsucht

解决C++编译错误:'no matching function for call to 'function'',如何解决?

Lösung für C++-Kompilierungsfehler: „Keine passende Funktion für Aufruf von „Funktion“, wie lässt sich das Problem lösen?

Beim Schreiben von Programmen in C++ stoßen wir häufig auf verschiedene Kompilierungsfehler. Einer der häufigsten Fehler ist „Keine passende Funktion für Aufruf von ‚Funktion‘“. Dieser Fehler tritt normalerweise auf, wenn eine Funktion aufgerufen wird und der Compiler keine passende Funktionsdeklaration oder -definition finden kann. In diesem Artikel wird detailliert beschrieben, wie dieser Kompilierungsfehler behoben wird, und es werden einige Beispielcodes bereitgestellt.

Schauen wir uns zunächst ein einfaches Beispiel an:

#include <iostream>

void add(int a, int b) {
    std::cout << "Sum: " << a + b << std::endl;
}

int main() {
    add(1, 2, 3);  // 调用了错误的函数
    return 0;
}
Nach dem Login kopieren

Im obigen Code definieren wir eine Additionsfunktion, um die Summe zweier Ganzzahlen zu berechnen. In der Hauptfunktion haben wir versehentlich die Add-Funktion aufgerufen und drei Parameter übergeben. Da wir keine überladene Version der Add-Funktion bereitgestellt haben, die drei Parameter akzeptiert, kann der Compiler keine passende Funktionsdeklaration oder -definition finden, was zu einem Kompilierungsfehler führt.

Um dieses Problem zu lösen, müssen wir uns die Fehlermeldung ansehen und die fehlerhafte Codezeile finden. Der Compiler gibt normalerweise in der Fehlermeldung einige Hinweise auf den Fehler, z. B. keine passende Funktionsdeklaration oder -definition gefunden usw. Anhand dieser Tipps können wir ermitteln, warum der Fehler aufgetreten ist, und den Code entsprechend anpassen.

In diesem Beispiel meldet der Compiler einen Fehler: „Keine passende Funktion für Aufruf von ‚add‘“. Diese Fehlermeldung teilt uns mit, dass die von uns aufgerufene Add-Funktion keine passende Funktionsdeklaration oder -definition gefunden hat. Um diesen Fehler zu beheben, müssen wir die Parameter des Funktionsaufrufs ändern, um sicherzustellen, dass sie mit den von der Funktion definierten Parametern übereinstimmen.

Die Möglichkeit, den oben genannten Fehler zu beheben, besteht darin, die zusätzlichen Parameter zu entfernen, damit der Funktionsaufruf mit der Funktionsdefinition übereinstimmt, wie unten gezeigt:

#include <iostream>

void add(int a, int b) {
    std::cout << "Sum: " << a + b << std::endl;
}

int main() {
    add(1, 2);
    return 0;
}
Nach dem Login kopieren

Im geänderten Code haben wir den zusätzlichen Parameter „3“ entfernt, damit der Funktionsaufruf übereinstimmt die Funktion Übereinstimmung definieren. Auf diese Weise kann der Compiler die Definition der Funktion namens „add“ finden und das Programm erfolgreich kompilieren.

Neben der Nichtübereinstimmung der Funktionsaufrufparameter gibt es noch einige andere häufige Gründe, die den Fehler „Keine passende Funktion für Aufruf von ‚Funktion‘“ verursachen können. Nachfolgend sind einige häufige Situationen und Lösungen aufgeführt.

  1. Die Funktionsdeklaration und die definierten Parametertypen stimmen nicht überein.
    Wenn beispielsweise eine Funktionsdeklaration einen Parameter vom Typ int verwendet und eine Funktionsdefinition einen Parameter vom Typ float verwendet, kann der Compiler keine passende Funktionsdeklaration oder -definition finden. Die Lösung besteht darin, sicherzustellen, dass Typ und Anzahl der Parameter zwischen der Funktionsdeklaration und der Definition konsistent sind.
  2. Funktionsüberlastungskonflikt.
    Wenn es mehrere Funktionsüberladungen mit demselben Parametertyp und derselben Parameternummer gibt, kann der Compiler nicht bestimmen, welche überladene Funktion aufgerufen werden soll. Die Lösung besteht darin, Funktionsüberladungen mit spezifischeren Parametertypen bereitzustellen oder die Parameter explizit in den erforderlichen Typ umzuwandeln.
  3. Die Funktion ist nicht deklariert oder definiert.
    Bevor wir eine Funktion aufrufen, müssen wir normalerweise eine Deklaration oder Definition der Funktion bereitstellen, damit der Compiler die Funktion finden und verknüpfen kann. Wenn die Funktion nicht deklariert oder definiert ist, meldet der Compiler den Fehler „Keine passende Funktion für Aufruf von ‚Funktion‘“. Die Lösung besteht darin, eine Deklaration oder Definition der Funktion bereitzustellen.

Zusammenfassend lässt sich sagen: Wenn wir den C++-Kompilierungsfehler „Keine passende Funktion für Aufruf von ‚Funktion‘“ beheben, müssen wir zunächst die Fehlermeldung überprüfen und die Fehlerursache ermitteln. Mithilfe der in der Fehlermeldung bereitgestellten Hinweise können wir dann den Code ändern, um sicherzustellen, dass der Funktionsaufruf mit der Funktionsdeklaration oder -definition übereinstimmt. Durch korrektes Ändern der Parameter der aufrufenden Funktion können wir diesen Kompilierungsfehler erfolgreich beheben, sodass das Programm erfolgreich kompiliert und ausgeführt werden kann.

Das obige ist der detaillierte Inhalt vonWie behebt man den C++-Kompilierungsfehler: „Keine passende Funktion für Aufruf von „Funktion''?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage