Maison  >  Article  >  développement back-end  >  Erreur de compilation C++ : Les opérateurs surchargés doivent avoir le même nombre de paramètres. Comment le modifier ?

Erreur de compilation C++ : Les opérateurs surchargés doivent avoir le même nombre de paramètres. Comment le modifier ?

WBOY
WBOYoriginal
2023-08-22 11:12:131479parcourir

Erreur de compilation C++ : Les opérateurs surchargés doivent avoir le même nombre de paramètres. Comment le modifier ?

Dans le processus de programmation C++, diverses erreurs se produisent souvent, parmi lesquelles les erreurs de compilation sont très courantes. Parmi eux, la surcharge des opérateurs doit avoir le même nombre de paramètres est une erreur très courante. Aujourd'hui, nous allons découvrir la cause de cette erreur et comment la modifier.

Tout d’abord, nous devons comprendre ce qu’est la surcharge des opérateurs. Les opérateurs sont un concept très important en C++. Ce sont des symboles ou des fonctions spécifiques utilisés pour effectuer des opérations spécifiques. Il existe certains opérateurs intégrés en C++, tels que +, -, *, /, etc., et ces opérateurs intégrés peuvent être utilisés pour opérer sur des types de données de base. Cependant, pour les types personnalisés, nous pouvons également surcharger ces opérateurs afin qu'ils puissent opérer sur nos propres types.

Par exemple, nous définissons une classe nommée Complexe (nombre pluriel), qui contient 2 variables membres, à savoir la partie réelle et la partie imaginaire. On peut implémenter des opérations d'addition, de soustraction, de multiplication et de division entre deux nombres complexes en surchargeant les opérateurs "+", "-", "*", "/", etc. De cette façon, nous pouvons utiliser les opérateurs intégrés de C++ pour opérer sur nos types personnalisés, ce qui est très flexible et pratique.

Cependant, lors de la surcharge des opérateurs, il convient de noter que nous devons suivre certaines règles. L’un d’eux est que les opérateurs surchargés doivent avoir le même nombre d’arguments. Autrement dit, si nous définissons un opérateur binaire (nécessitant deux opérandes), alors nous devons définir deux paramètres dans la fonction surchargée d'opérateur, sinon une erreur de compilation se produira.

Par exemple, lorsque l'on surcharge l'opérateur "+" dans la classe Complex, on définit la fonction suivante dans la classe :

Complex operator + (const Complex& c)
{
    Complex result(real+c.real, imag+c.imag);
    return result;
}

Dans le code ci-dessus, on définit un opérateur binaire "+", qui nécessite deux opérations nombre, donc deux paramètres sont également définis. Le premier paramètre est l'objet actuel (ce pointeur ici), et le deuxième paramètre est l'objet complexe c.

Cependant, si l'on définit une fonction comme celle-ci : (un seul paramètre est défini)

Complex operator + (const Complex& c)
{
    Complex result(real+c.real, imag+c.imag);
    return result;
}

alors il y aura une erreur de compilation : "Les opérateurs surchargés doivent avoir le même nombre de paramètres".

À ce stade, il ne nous reste plus qu'à corriger cette erreur. Nous devons ajouter ou supprimer des paramètres dans la fonction surchargée de l'opérateur afin que le nombre de paramètres soit le même que le nombre de paramètres requis par l'opérateur.

Dans l'exemple ci-dessus, il suffit d'ajouter un seul paramètre pour que le nombre de paramètres soit le même que le nombre de paramètres requis par l'opérateur. Le code modifié est le suivant :

Complex operator + (const Complex& c1, const Complex& c2)
{
    Complex result(c1.real+c2.real, c1.imag+c2.imag);
    return result;
}

Dans le code ci-dessus, nous avons ajouté un paramètre c2 pour que le nombre de paramètres soit le même que le nombre de paramètres requis par l'opérateur. De cette façon, vous pouvez compiler et exécuter avec succès.

Pour résumer, erreur de compilation C++ : les opérateurs surchargés doivent avoir le même nombre de paramètres, car lors de la surcharge des opérateurs, il faut s'assurer que le nombre de paramètres définis est le même que le nombre de paramètres requis par le symbole. Pour résoudre cette erreur, nous devons ajouter ou supprimer des paramètres dans la fonction surchargée de l'opérateur afin que le nombre de paramètres soit le même que le nombre de paramètres requis par l'opérateur.

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