Maison > développement back-end > C++ > le corps du texte

Comment remplacer la fonction de classe de base en C++ ?

王林
Libérer: 2024-04-12 22:45:02
original
434 Les gens l'ont consulté

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

C++ 中如何覆盖基类函数?

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 :

  • Avoir le même nom que la fonction de classe de base
  • Avoir la même signature (liste de paramètres et valeur de retour)
  • Utiliser Mot-clé override override 关键字

例如,考虑以下基类:

class Base {
public:
    virtual void print() { std::cout << "Base class" << std::endl; }
};
Copier après la connexion

要覆盖 print() 函数,派生类可以使用以下语法:

class Derived : public Base {
public:
    override void print() { std::cout << "Derived class" << std::endl; }
};
Copier après la connexion

实战案例

考虑一个 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;
    }
};
Copier après la connexion

main()

Par exemple, considérons la classe de base suivante :

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;
}
Copier après la connexion

Pour remplacer la fonction print(), une classe dérivée peut utiliser la syntaxe suivante : 🎜
Area of the circle: 78.5
Copier après la connexion
🎜🎜Cas pratique 🎜🎜🎜Considérons une classe de base 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 : 🎜rrreee

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal