Maison  >  Article  >  développement back-end  >  Explication détaillée de l'héritage des fonctions C++ : que sont les droits d'accès hérités ?

Explication détaillée de l'héritage des fonctions C++ : que sont les droits d'accès hérités ?

PHPz
PHPzoriginal
2024-05-03 08:42:021077parcourir

En C++, l'accès d'une classe dérivée aux fonctions de la classe de base dépend du niveau d'héritage : public : les classes dérivées peuvent accéder et remplacer les fonctions publiques de la classe de base sans restrictions. Protégé : les classes dérivées peuvent uniquement accéder et remplacer les fonctions protégées de la classe de base et ne peuvent pas les appeler directement à partir des objets de la classe de base. private : les classes dérivées ne peuvent pas accéder aux fonctions privées de la classe de base.

C++ 函数继承详解:什么是继承访问权限?

Explication détaillée de l'héritage des fonctions C++ : qu'est-ce que les autorisations d'accès héritées ?

En C++, lorsqu'une classe dérivée hérite d'une classe de base, elle peut hériter des membres de la classe de base, y compris des fonctions. En fonction des autorisations d'héritage, les classes dérivées disposent de différentes manières d'accéder aux fonctions de la classe de base.

Niveaux d'accès hérités

Il existe trois niveaux d'accès hérités en C++ :

  • public : les classes dérivées peuvent accéder et remplacer les fonctions publiques de la classe de base sans restrictions.
  • protected : les classes dérivées ne peuvent accéder et remplacer que les fonctions protégées de la classe de base, et ne peuvent pas les appeler directement à partir des objets de la classe de base.
  • private : Les classes dérivées ne peuvent pas accéder aux fonctions privées de la classe de base.

Cas pratique

Considérons la classe de base et la classe dérivée suivantes :

class Base {
public:
  void public_function();
protected:
  void protected_function();
private:
  void private_function();
};

class Derived : public Base {
public:
  // 派生类可以无限制地访问 public 函数
  void call_public_function() {
    public_function();
  }

protected:
  // 派生类只能访问 protected 函数
  void call_protected_function() {
    protected_function();
  }
};

Comme le montre cet exemple :

  • La classe dérivée Derived est accessible via la fonction call_public_function méthode public_function de la classe de base. Derived 可以通过 call_public_function 方法访问基类的 public_function
  • 派生类也可以通过 call_protected_function 方法访问基类的 protected_function
  • 派生类不能直接访问或重写基类的 private_function
  • Les classes dérivées peuvent également accéder à la protected_function de la classe de base via la méthode call_protected_function.

Les classes dérivées

ne peuvent pas

accéder directement ou remplacer la private_function de la classe de base car elle est privée.

🎜🎜Remarque🎜🎜Il convient de noter que bien que les fonctions protégées de la classe de base ne puissent pas être appelées directement à partir des objets de la classe de base, elles peuvent être appelées à partir des fonctions protégées ou publiques de la classe dérivée, à condition que la classe dérivée la classe a accès à ces fonctions protégées. 🎜

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