Maison > Article > développement back-end > Surcharge de fonctions C++ et fonctions virtuelles de fonction
Réponse : La surcharge de fonctions et les fonctions virtuelles de fonctions en C++ permettent aux développeurs de créer des fonctions avec le même nom mais des listes de paramètres ou des comportements différents. Description détaillée : Surcharge de fonctions : créez des fonctions avec le même nom mais des listes de paramètres différentes pour utiliser des fonctions avec des fonctionnalités similaires dans différentes situations. Fonction virtuelle de fonction : fonction qui remplace la classe de base dans une classe dérivée, utilisée pour le polymorphisme, permettant à la classe dérivée de fournir une implémentation différente de celle de la classe de base.
Surcharge de fonctions et fonctions virtuelles de fonctions en C++
Surcharge de fonctions
La surcharge de fonctions vous permet de créer plusieurs fonctions portant le même nom mais avec des listes de paramètres différentes. Ceci est utile si vous devez utiliser des fonctions ayant des fonctionnalités similaires dans différentes situations.
Syntaxe :
ret_type function_name(parameter_list_1); ret_type function_name(parameter_list_2); ...
Exemple :
void printInfo(int x) { cout << "int: " << x << endl; } void printInfo(double x) { cout << "double: " << x << endl; } int main() { int a = 10; double b = 3.14; printInfo(a); // calls printInfo(int) printInfo(b); // calls printInfo(double) return 0; }
Fonction fonction virtuelle
Fonction fonction virtuelle permet de remplacer les fonctions de la classe de base dans la classe dérivée. Ceci est utile pour le polymorphisme et la programmation orientée objet car cela vous permet de fournir une classe dérivée avec une implémentation différente de celle de la classe de base.
Syntaxe :
Utilisez le mot-clé virtuel
lors de la déclaration d'une fonction dans une classe de base. virtual
。
virtual ret_type function_name(parameter_list) const = 0;
在派生类中重写函数时使用关键字 override
。
override ret_type function_name(parameter_list) const { /* implementation */ }
示例:
class Shape { public: virtual double area() const = 0; // pure virtual function }; class Circle : public Shape { public: double radius; Circle(double radius) : radius(radius) {} override double area() const { return 3.14 * radius * radius; } }; class Square : public Shape { public: double side; Square(double side) : side(side) {} override double area() const { return side * side; } }; int main() { Shape* s1 = new Circle(5); Shape* s2 = new Square(10); cout << "Area of circle: " << s1->area() << endl; cout << "Area of square: " << s2->area() << endl; return 0; }
注意事项:
virtual
的函数。virtual
和 = 0
virtual ret_type function_name(parameter_list) const = 0;
override
lors du remplacement d'une fonction dans une classe dérivée. 🎜🎜override ret_type function_name(parameter_list) const { /* implémentation */ }
🎜🎜🎜Exemple : 🎜🎜rrreee🎜🎜Remarque : 🎜🎜virtuelles
dans la classe de base. 🎜virtuelle
et = 0
dans la classe de base) doivent être remplacées dans la classe dérivée, sinon la classe dérivée deviendra une classe abstraite . 🎜🎜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!