Heim  >  Artikel  >  Backend-Entwicklung  >  Detaillierte Erläuterung der C++-Funktionsvererbung: Was sind vererbte Zugriffsrechte?

Detaillierte Erläuterung der C++-Funktionsvererbung: Was sind vererbte Zugriffsrechte?

PHPz
PHPzOriginal
2024-05-03 08:42:021095Durchsuche

In C++ hängt der Zugriff einer abgeleiteten Klasse auf Basisklassenfunktionen von der Vererbungsebene ab: öffentlich: Abgeleitete Klassen können ohne Einschränkungen auf öffentliche Funktionen der Basisklasse zugreifen und diese überschreiben. Geschützt: Abgeleitete Klassen können nur auf geschützte Funktionen der Basisklasse zugreifen und diese überschreiben und können sie nicht direkt von Objekten der Basisklasse aufrufen. privat: Abgeleitete Klassen können nicht auf private Funktionen der Basisklasse zugreifen.

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

Detaillierte Erläuterung der C++-Funktionsvererbung: Was sind vererbte Zugriffsberechtigungen?

Wenn in C++ eine abgeleitete Klasse eine Basisklasse erbt, kann sie Mitglieder der Basisklasse, einschließlich Funktionen, erben. Abhängig von den Vererbungsberechtigungen haben abgeleitete Klassen unterschiedliche Möglichkeiten, auf Basisklassenfunktionen zuzugreifen.

Geerbte Zugriffsebenen

In C++ gibt es drei geerbte Zugriffsebenen:

  • öffentlich: Abgeleitete Klassen können ohne Einschränkungen auf die öffentlichen Funktionen der Basisklasse zugreifen und diese überschreiben.
  • geschützt: Abgeleitete Klassen können nur auf geschützte Funktionen der Basisklasse zugreifen und diese überschreiben und können sie nicht direkt von Objekten der Basisklasse aufrufen.
  • private: Abgeleitete Klassen können nicht auf private Funktionen der Basisklasse zugreifen.

Praktischer Fall

Betrachten Sie die folgende Basisklasse und abgeleitete Klasse:

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

Wie aus diesem Beispiel ersichtlich ist:

  • Auf die abgeleitete Klasse Derived kann über die Funktion call_public_function zugegriffen werden Methode public_function der Basisklasse. Derived 可以通过 call_public_function 方法访问基类的 public_function
  • 派生类也可以通过 call_protected_function 方法访问基类的 protected_function
  • 派生类不能直接访问或重写基类的 private_function
  • Abgeleitete Klassen können auch über die Methode call_protected_function auf die protected_function der Basisklasse zugreifen.

Abgeleitete Klassen

können

nicht direkt auf die private_function der Basisklasse zugreifen oder diese überschreiben, da diese privat ist.

🎜🎜Hinweis🎜🎜Es ist erwähnenswert, dass die geschützten Funktionen der Basisklasse zwar nicht direkt von den Objekten der Basisklasse aufgerufen werden können, sie jedoch von den geschützten oder öffentlichen Funktionen der abgeleiteten Klasse aufgerufen werden können, sofern die abgeleiteten Die Klasse hat Zugriff auf diese geschützten Funktionen. 🎜

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der C++-Funktionsvererbung: Was sind vererbte Zugriffsrechte?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn