Maison  >  Article  >  développement back-end  >  Résoudre l'erreur de compilation C++ : « fonction » ne prend pas « n » arguments

Résoudre l'erreur de compilation C++ : « fonction » ne prend pas « n » arguments

WBOY
WBOYoriginal
2023-08-25 21:10:511407parcourir

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

Résoudre les erreurs de compilation C++ : « fonction » ne prend pas « n » arguments

En programmation C++, diverses erreurs de compilation sont souvent rencontrées. L'une des erreurs courantes est : "'fonction' ne prend pas 'n' arguments", ce qui signifie que la fonction ne prend pas n arguments.

Cette erreur se produit généralement lorsqu'une fonction est appelée. Les paramètres réels transmis sont incohérents avec le nombre de paramètres requis lorsque la fonction est déclarée, ou les types ne correspondent pas. Il existe plusieurs façons de résoudre cette erreur.

  1. Vérifiez le nombre et le type de paramètres de l'appel de fonction
    Tout d'abord, nous devons vérifier si le nombre et le type de paramètres de l'appel de fonction sont cohérents avec la déclaration de fonction. Si la déclaration de fonction nécessite n paramètres, alors n paramètres doivent être transmis lors de l'appel de la fonction et les types de paramètres doivent être cohérents avec la déclaration. Par exemple, dans l'exemple de code suivant, la fonction add() nécessite deux paramètres de type int lorsqu'elle est déclarée, mais un seul paramètre est transmis lorsqu'elle est appelée.
#include <iostream>

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

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

Lors de la compilation de ce code, une erreur se produit : "'ajouter' ne prend pas 1 argument". La façon de résoudre cette erreur consiste à transmettre deux paramètres de type int lors de l’appel de la fonction add().

int result = add(1, 2);
  1. Vérifiez si la déclaration et la définition de la fonction sont cohérentes
    Si la déclaration et la définition de la fonction sont incohérentes, cela provoquera également des erreurs de compilation. La déclaration d'une fonction est généralement placée dans un fichier d'en-tête, tandis que la définition d'une fonction est généralement placée dans un fichier source. Si la fonction déclarée dans le fichier d'en-tête est incohérente avec le nombre ou le type de paramètres de fonction définis dans le fichier source, une erreur de compilation se produira.

La façon de résoudre ce problème est de s'assurer que la déclaration et la définition de la fonction sont cohérentes. Par exemple, dans l'exemple de code suivant, la déclaration et la définition de la fonction add() ne correspondent pas au nombre de paramètres. Il nécessite deux paramètres de type int lors de sa déclaration, mais il n'y a qu'un seul paramètre lorsqu'il est défini.

// 头文件 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;
}

Lors de la compilation de ce code, une erreur survient : "'add' ne prend pas 2 arguments". La façon de résoudre cette erreur consiste à transmettre deux paramètres de type int lorsque la fonction est définie, la rendant cohérente avec la déclaration.

// 源文件 add.cpp
int add(int a, int b)
{
    return a + b;
}
  1. Utiliser la surcharge de fonctions
    En C++, vous pouvez utiliser la surcharge de fonctions pour résoudre le problème du nombre incohérent de paramètres. La surcharge de fonctions fait référence à la définition de plusieurs fonctions portant le même nom dans la même portée, mais avec des nombres ou des types de paramètres différents.

Par exemple, on peut surcharger la fonction add() pour qu'elle accepte soit deux ou trois paramètres. Voici un exemple de code :

#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;
}

L'utilisation de la surcharge de fonctions peut s'adapter de manière flexible aux appels de fonction avec différents nombres de paramètres et éviter les erreurs de compilation avec un nombre de paramètres incohérent.

Diverses erreurs de compilation sont souvent rencontrées en programmation. Pour l'erreur "'fonction' ne prend pas 'n' arguments", nous pouvons vérifier le nombre et le type de paramètres dans l'appel de fonction pour nous assurer que la déclaration et la définition de la fonction sont cohérentes. , et utiliser la surcharge de fonctions et d'autres méthodes peuvent être utilisées pour résoudre ce problème. La gestion des erreurs et le débogage en temps opportun peuvent améliorer l’efficacité de la programmation et nous aider à écrire un code plus robuste et plus fiable.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn