Heim > Backend-Entwicklung > C++ > Wie erreicht Vererbung Polymorphismus in C++?

Wie erreicht Vererbung Polymorphismus in C++?

WBOY
Freigeben: 2024-06-01 13:10:57
Original
303 Leute haben es durchsucht

In C++ wird Polymorphismus durch Vererbung erreicht, wodurch Objekte unterschiedliche Verhaltensweisen haben können, selbst wenn sie dieselbe gemeinsame Basisklasse haben. Vererbung ist eine Methode zum Erstellen neuer Klassen, bei der die neue Klasse (abgeleitete Klasse) Mitglieder von einer vorhandenen Klasse (Basisklasse) erbt und neue Mitglieder hinzufügen kann. Wenn eine virtuelle Funktion mithilfe eines Zeigers oder einer Referenz eines abgeleiteten Klassentyps aufgerufen wird, wird die überschriebene Methode in der abgeleiteten Klasse aufgerufen.

C++ 中继承如何实现多态性?

Wie implementiert man Polymorphismus durch Vererbung in C++?

Was ist Polymorphismus?

Polymorphismus ermöglicht Objekten ein unterschiedliches Verhalten, selbst wenn sie dieselbe gemeinsame Basisklasse haben. In C++ wird Polymorphismus durch Vererbung erreicht.

Vererbung

Vererbung ist eine Methode zum Erstellen neuer Methoden einer Klasse, wobei die neue Klasse (abgeleitete Klasse) von einer vorhandenen Klasse (Basisklasse) erbt. Eine abgeleitete Klasse erbt alle Mitglieder (Daten und Funktionen) der Basisklasse und kann auch eigene neue Mitglieder hinzufügen.

Wie wird Polymorphismus durch Vererbung erreicht?

Beim Polymorphismus kann ein abgeleitetes Klassenobjekt einen Zeiger oder eine Referenz auf seinen Basisklassentyp haben. Wenn eine virtuelle Funktion mithilfe eines Zeigers oder einer Referenz eines abgeleiteten Klassentyps aufgerufen wird, wird die überschriebene Methode in der abgeleiteten Klasse aufgerufen.

Beispiel:

class Animal {
public:
    virtual void makeSound() {
        cout << "Animal makes a sound" << endl;
    }
};

class Dog : public Animal {
public:
    void makeSound() override {
        cout << "Woof woof!" << endl;
    }
};

class Cat : public Animal {
public:
    void makeSound() override {
        cout << "Meow meow!" << endl;
    }
};

int main() {
    Animal* animal = new Cat(); // 指向 Cat 对象的 Animal 指针
    animal->makeSound(); // 输出 "Meow meow!"
}
Nach dem Login kopieren

Im obigen Beispiel:

  • Animal ist die Basisklasse.
  • Animal 是基类。
  • DogCat 是派生类。
  • makeSound 是一个虚函数,在派生类中重写。
  • animal 是一个指向派生类对象的基类指针。

当调用 animal->makeSound() 时,会调用派生类(Cat)中重写的 makeSoundDog und Cat sind abgeleitete Klassen.

makeSound ist eine virtuelle Funktion, die in abgeleiteten Klassen überschrieben wird. 🎜animal ist ein Basisklassenzeiger, der auf ein abgeleitetes Klassenobjekt zeigt. 🎜Beim Aufruf von animal->makeSound() wird der überschriebene makeSoundCat) aufgerufen /code>-Methode, Ausgabe „Meow miau!“. 🎜

Das obige ist der detaillierte Inhalt vonWie erreicht Vererbung Polymorphismus in C++?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage