Heim  >  Artikel  >  Backend-Entwicklung  >  Vererbungsregeln für C++-Memberfunktionen

Vererbungsregeln für C++-Memberfunktionen

WBOY
WBOYOriginal
2024-04-18 14:45:011135Durchsuche

Vererbungsregeln für C++-Memberfunktionen: Öffentliche Vererbung: Wenn eine abgeleitete Klasse die Memberfunktionen der Basisklasse öffentlich erbt, sind auch die Memberfunktionen der abgeleiteten Klasse öffentlich. Geschützte Vererbung: Wenn eine abgeleitete Klasse die Mitgliedsfunktionen der Basisklasse schützt und erbt, sind die Mitgliedsfunktionen der abgeleiteten Klasse geschützt. Private Vererbung: Die abgeleitete Klasse erbt privat die Mitgliedsfunktionen der Basisklasse. Die Mitgliedsfunktionen der abgeleiteten Klasse sind privat und können von der abgeleiteten Klasse selbst nicht direkt aufgerufen werden.

C++ 成员函数的继承规则

Vererbungsregeln für C++-Memberfunktionen

In der objektorientierten C++-Programmierung kann eine Klasse Datenmember und Memberfunktionen von einer Basisklasse durch Vererbung erben. Befolgen Sie für die Vererbung von Mitgliedsfunktionen die folgenden Regeln:

  • Öffentliche Vererbung: Wenn eine abgeleitete Klasse die Mitgliedsfunktionen der Basisklasse öffentlich erbt, sind auch die Mitgliedsfunktionen der abgeleiteten Klasse öffentlich.
  • Geschützte Vererbung: Die abgeleitete Klasse schützt die Mitgliedsfunktionen der geerbten Basisklasse, dann sind die Mitgliedsfunktionen der abgeleiteten Klasse geschützt.
  • Private Vererbung: Wenn eine abgeleitete Klasse die Mitgliedsfunktionen der Basisklasse privat erbt, sind die Mitgliedsfunktionen der abgeleiteten Klasse privat und die abgeleitete Klasse selbst kann nicht direkt darauf zugreifen.

Praktisches Beispiel:

Betrachten Sie das folgende Beispiel:

class Shape {
public:
    virtual double getArea();  // 抽象函数
};

class Rectangle : public Shape {
public:
    Rectangle(double length, double width);
    double getArea() override;  // 重写父类的 getArea 函数
private:
    double length;
    double width;
};

class Square : protected Shape {
public:
    Square(double side);
    double getArea() override;
private:
    double side;
};

class Circle : private Shape {
public:
    Circle(double radius);
    double getArea() override;
private:
    double radius;
};

In diesem Beispiel:

  • Die Klasse Rectangle erbt öffentlich die Klasse Shape, also Die Funktion getArea ist auch in der Klasse Rectangle öffentlich. Rectangle 类公有继承 Shape 类,因此 getArea 函数在 Rectangle 类中也是公有的。
  • Square 类保护继承 Shape 类,因此 getArea 函数在 Square 类中也是保护的。
  • Circle 类私有继承 Shape 类,因此 getArea 函数在 Circle
  • Die geschützte Klasse Square erbt die Klasse Shape, sodass die Funktion getArea auch in der Klasse Square geschützt ist .

Die Klasse Circle erbt privat die Klasse Shape, sodass die Funktion getArea in der Klasse Circle privat ist.

    Hinweis:
  • Abstrakte Funktionen müssen in abgeleiteten Klassen überschrieben werden.
  • Memberfunktionen einer abgeleiteten Klasse können auf die geschützten und privaten Datenmember der Basisklasse zugreifen, können jedoch nur die öffentlichen und geschützten Memberfunktionen der Basisklasse aufrufen.
🎜Konstruktoren und Destruktoren abgeleiteter Klassen werden nicht von der Basisklasse geerbt. 🎜🎜

Das obige ist der detaillierte Inhalt vonVererbungsregeln für C++-Memberfunktionen. 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