Maison  >  Article  >  développement back-end  >  Comment remplacer la fonction de classe de base en C++ ?

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

王林
王林original
2024-04-12 22:45:02372parcourir

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; }
};

要覆盖 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()

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;
}

Pour remplacer la fonction print(), une classe dérivée peut utiliser la syntaxe suivante : 🎜
Area of the circle: 78.5
🎜🎜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!

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