Heim >Backend-Entwicklung >C++ >Beheben Sie den C++-Kompilierungsfehler: „Funktion' akzeptiert keine „n' Argumente

Beheben Sie den C++-Kompilierungsfehler: „Funktion' akzeptiert keine „n' Argumente

WBOY
WBOYOriginal
2023-08-25 21:10:511533Durchsuche

解决C++编译错误:'function' does not take 'n' arguments

C++-Kompilierungsfehler beheben: „Funktion“ akzeptiert keine „n“ Argumente

Bei der C++-Programmierung treten häufig verschiedene Kompilierungsfehler auf. Einer der häufigsten Fehler ist: „‚Funktion‘ akzeptiert nicht ‚n‘ Argumente“, was bedeutet, dass die Funktion keine n Parameter akzeptiert.

Dieser Fehler tritt im Allgemeinen auf, wenn eine Funktion aufgerufen wird. Die tatsächlich übergebenen Parameter stimmen nicht mit der Anzahl der erforderlichen Parameter überein, wenn die Funktion deklariert wird, oder die Typen stimmen nicht überein. Es gibt mehrere Möglichkeiten, diesen Fehler zu beheben.

  1. Überprüfen Sie die Anzahl und Art der Parameter des Funktionsaufrufs.
    Zunächst müssen wir prüfen, ob Anzahl und Typ der Parameter des Funktionsaufrufs mit der Funktionsdeklaration übereinstimmen. Wenn die Funktionsdeklaration n Parameter erfordert, müssen beim Aufruf der Funktion n Parameter übergeben werden und die Parametertypen müssen mit der Deklaration konsistent sein. Im folgenden Beispielcode erfordert die Funktion add() beispielsweise zwei Parameter vom Typ int, wenn sie deklariert wird, beim Aufruf wird jedoch nur ein Parameter übergeben.
#include <iostream>

int add(int a, int b)
{
    return a + b;
}

int main()
{
    int result = add(1);
    std::cout << result << std::endl;
    return 0;
}

Beim Kompilieren dieses Codes tritt ein Fehler auf: „‘add‘ akzeptiert keine 1 Argumente“. Die Möglichkeit, diesen Fehler zu beheben, besteht darin, beim Aufruf der Funktion add() zwei Parameter vom Typ int zu übergeben.

int result = add(1, 2);
  1. Überprüfen Sie, ob die Funktionsdeklaration und -definition konsistent sind.
    Wenn die Funktionsdeklaration und -definition inkonsistent sind, führt dies auch zu Kompilierungsfehlern. Die Deklaration einer Funktion wird normalerweise in einer Header-Datei abgelegt, während die Definition einer Funktion normalerweise in einer Quelldatei abgelegt wird. Wenn die in der Header-Datei deklarierte Funktion nicht mit der Anzahl oder dem Typ der in der Quelldatei definierten Funktionsparameter übereinstimmt, tritt ein Kompilierungsfehler auf.

Die Lösung dieses Problems besteht darin, sicherzustellen, dass die Deklaration und Definition der Funktion konsistent sind. Im folgenden Beispielcode stimmen beispielsweise die Deklaration und Definition der Funktion add() nicht mit der Anzahl der Parameter überein. Bei der Deklaration sind zwei Parameter vom Typ int erforderlich, bei der Definition gibt es jedoch nur einen Parameter.

// 头文件 add.h
int add(int a, int b);

// 源文件 add.cpp
int add(int a)
{
    return a + 2;
}

// 主程序
#include <iostream>
#include "add.h"

int main()
{
    int result = add(1, 2);
    std::cout << result << std::endl;
    return 0;
}

Beim Kompilieren dieses Codes tritt ein Fehler auf: „‘add‘ akzeptiert keine 2 Argumente“. Die Möglichkeit, diesen Fehler zu beheben, besteht darin, bei der Definition der Funktion zwei Parameter vom Typ int zu übergeben, um sie mit der Deklaration in Einklang zu bringen.

// 源文件 add.cpp
int add(int a, int b)
{
    return a + b;
}
  1. Funktionsüberladung verwenden
    In C++ können Sie Funktionsüberladung verwenden, um das Problem der inkonsistenten Anzahl von Parametern zu lösen. Unter Funktionsüberladung versteht man die Definition mehrerer Funktionen mit demselben Namen im selben Bereich, aber mit unterschiedlicher Anzahl oder unterschiedlichen Parametertypen.

Zum Beispiel können wir die Funktion add() überladen, sodass sie entweder zwei oder drei Parameter akzeptiert. Das Folgende ist ein Beispielcode:

#include <iostream>

int add(int a, int b)
{
    return a + b;
}

int add(int a, int b, int c)
{
    return a + b + c;
}

int main()
{
    int result1 = add(1, 2);
    std::cout << result1 << std::endl;

    int result2 = add(1, 2, 3);
    std::cout << result2 << std::endl;

    return 0;
}

Durch die Verwendung von Funktionsüberladung können Sie sich flexibel an Funktionsaufrufe mit unterschiedlicher Anzahl von Parametern anpassen und Kompilierungsfehler mit inkonsistenter Anzahl von Parametern vermeiden.

Beim Programmieren treten häufig verschiedene Kompilierungsfehler auf. Bei dem Fehler „Funktion akzeptiert keine n Argumente“ können wir die Anzahl und Art der Parameter im Funktionsaufruf überprüfen, um sicherzustellen, dass die Funktionsdeklaration und -definition konsistent sind , und verwenden Sie Funktionsüberladung und andere Methoden, um dieses Problem zu lösen. Eine rechtzeitige Fehlerbehandlung und Fehlerbehebung können die Programmiereffizienz verbessern und uns dabei helfen, robusteren und zuverlässigeren Code zu schreiben.

Das obige ist der detaillierte Inhalt vonBeheben Sie den C++-Kompilierungsfehler: „Funktion' akzeptiert keine „n' Argumente. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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