Maison  >  Article  >  développement back-end  >  Analyse de l'utilisation de la surcharge des fonctions C++

Analyse de l'utilisation de la surcharge des fonctions C++

WBOY
WBOYoriginal
2024-04-18 18:21:01723parcourir

La surcharge de fonctions permet de créer des fonctions avec différentes listes de paramètres utilisant le même nom, permettant une flexibilité du code. Les règles incluent : le nom de la fonction est le même, la liste des paramètres est différente et peut être de type ou de numéro différent. Par exemple, une classe qui calcule la surface contient des fonctions surchargées pour différentes formes, et la fonction correspondante peut être appelée pour calculer la surface en fonction du type de forme.

C++ 函数的重载用法解析

Analyse de l'utilisation de la surcharge de fonctions C++

Qu'est-ce que la surcharge de fonctions ?

La surcharge de fonctions permet la création de plusieurs fonctions avec différentes listes de paramètres utilisant le même nom. Cela rend le code plus flexible et réutilisable.

La syntaxe de la fonction surchargée

returnType functionName(parameterList1);
returnType functionName(parameterList2);
...
returnType functionName(parameterListN);

où :

  • returnType est le type de retour de la fonction. returnType 是函数的返回类型。
  • functionName 是函数的名称。
  • parameterList
  • functionName est le nom de la fonction.

parameterList est la liste des paramètres de la fonction.

    Règles de surcharge des fonctions
  • fonctions du même nom.
  • La liste des paramètres est différente.

Le type ou le numéro du paramètre dans la liste des paramètres est différent.

Cas pratique

Supposons que nous ayons une classe qui calcule l'aire, avec des fonctions spécialisées pour différentes formes :

class Shape {
public:
  virtual double area() const = 0;
};

class Rectangle : public Shape {
public:
  Rectangle(double width, double height): width(width), height(height) {}
  double area() const override {
    return width * height;
  }
private:
  double width, height;
};

class Circle : public Shape {
public:
  Circle(double radius): radius(radius) {}
  double area() const override {
    return M_PI * radius * radius;
  }
private:
  double radius;
};

Pour calculer l'aire d'une forme, on peut appeler la fonction surchargée correspondante selon son type :

int main() {
  Shape* shapes[] = { new Rectangle(2.0, 3.0), new Circle(1.0) };
  for (int i = 0; i < 2; i++) {
    std::cout << "Area of shape " << i << ": " << shapes[i]->area() << std::endl;
  }
  return 0;
}
Sortie :
Area of shape 0: 6
Area of shape 1: 3.14159

    Remarque :
  • L'ordre des fonctions surchargées n'affecte pas le résultat de l'appel de fonction.
  • Les fonctions surchargées peuvent avoir différents niveaux de contrôle d'accès (par exemple public, privé).
🎜Les fonctions surchargées peuvent avoir différentes valeurs de paramètres par défaut. 🎜🎜

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