En C++, la substitution de fonctions permet aux classes dérivées de remplacer les fonctions de la classe de base pour étendre ou modifier leur comportement. La syntaxe est la suivante : Avoir le même nom de fonction Avoir la même signature de fonction Utiliser le mot-clé override
Un guide complet sur la substitution de fonctions en C++
En C++, la substitution de fonction permet à une classe dérivée de remplacer une fonction dans un classe de base. Ceci est utile lors de l’extension des fonctionnalités de la classe de base ou de la modification de son comportement.
Syntaxe
Pour remplacer une fonction de classe de base, la fonction de la classe dérivée doit :
override
override
关键字例如,考虑以下基类:
class Base { public: virtual void print() { std::cout << "Base class" << std::endl; } };
要覆盖 print()
函数,派生类可以使用以下语法:
class Derived : public Base { public: override void print() { std::cout << "Derived class" << std::endl; } };
实战案例
考虑一个 Shape
基类和一个 Circle
派生类:
class Shape { public: virtual double area() { return 0; } }; class Circle : public Shape { public: double radius; override double area() { return 3.14 * radius * radius; } };
在 main()
int main() { // 创建一个圆形对象 Circle circle; circle.radius = 5; // 通过基类指针调用派生类函数 Shape* shape = &circle; double area = shape->area(); std::cout << "Area of the circle: " << area << std::endl; return 0; }
print()
, une classe dérivée peut utiliser la syntaxe suivante : 🎜Area of the circle: 78.5
Shape
et une classe dérivée Circle
: 🎜rrreee🎜Dans le main()
fonction, nous pouvons utiliser des méthodes virtuelles Planifier des appels à ces deux méthodes : 🎜rrreee🎜Sortie : 🎜rrreeeCe 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!