Polymorphismus ist eine objektorientierte Programmierfunktion, die es Objekten ermöglicht, sich zur Laufzeit unterschiedlich zu verhalten, selbst wenn sie dieselbe übergeordnete Klasse haben. In C++ wird Polymorphismus durch virtuelle Funktionen und Vererbung erreicht: Definieren Sie eine Basisklasse und eine abgeleitete Klasse: Die Basisklasse enthält virtuelle Funktionen, und die abgeleitete Klasse erbt die Basisklasse und überschreibt die virtuellen Funktionen. Verwenden Sie Zeiger oder Referenzen: Speichern Sie die Adresse des Basisklassenobjekts über einen Zeiger oder eine Referenz und greifen Sie zur Laufzeit auf Objekte verschiedener abgeleiteter Klassen zu. Aufruf über eine virtuelle Funktion: Der Aufruf einer virtuellen Funktion in der Basisklasse ruft zur Laufzeit die überschriebene Funktion der abgeleiteten Klasse auf. Praktischer Fall: In der Formklassenhierarchie erben die Klassen „Circle“ und „Rechteck“ die Klasse „Shape“ und überschreiben die virtuellen Funktionen „area()“, „perimeter()“ und „draw()“, sodass diese Formen in praktischen Anwendungen des Polymorphismus in C++ verwendet werden können
Was ist Polymorphismus?
Polymorphismus ist eine Funktion in objektorientierten Programmiersprachen, die es Objekten ermöglicht, sich zur Laufzeit unterschiedlich zu verhalten, selbst wenn sie dieselbe übergeordnete Klasse haben. In C++ wird Polymorphismus durch virtuelle Funktionen und Vererbung erreicht.
Wie nutzt man Polymorphismus?
Basisklassen und abgeleitete Klassen definieren: Eine Basisklasse definieren, die virtuelle Funktionen enthält. Abgeleitete Klassen erben die Basisklasse und überschreiben virtuelle Funktionen, um unterschiedliche Implementierungen bereitzustellen.
class Shape {
public:
virtual double area() = 0;
virtual double perimeter() = 0;
virtual void draw() = 0;
};
class Circle : public Shape {
public:
... // 构造函数和数据成员
virtual double area() override;
virtual double perimeter() override;
virtual void draw() override;
};
class Rectangle : public Shape {
public:
... // 构造函数和数据成员
virtual double area() override;
virtual double perimeter() override;
virtual void draw() override;
};
vector<Shape*> shapes;
shapes.push_back(new Circle(...));
shapes.push_back(new Rectangle(...));
for (auto& shape : shapes) {
cout << "面积: " << shape->area() << endl;
cout << "周长: " << shape->perimeter() << endl;
shape->draw();
}
Vereinfachen Sie den Code und halten Sie die Basisklasse und die abgeleitete Klasse entkoppelt.
Verbessern Sie die Skalierbarkeit und Wartbarkeit des Codes.
Ermöglicht die dynamische Handhabung verschiedener Objekte zur Laufzeit.Das obige ist der detaillierte Inhalt vonWie verwende ich Polymorphismus, um Unterschiede zwischen verschiedenen Objekten in C++ zu behandeln?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!