In C++ ermöglicht das Überschreiben von Funktionen abgeleiteten Klassen, Basisklassenfunktionen zu überschreiben, um ihr Verhalten zu erweitern oder zu ändern. Die Syntax lautet: Den gleichen Funktionsnamen haben. Die gleiche Funktionssignatur haben. Das Schlüsselwort „override“ verwenden Basisklasse. Dies ist nützlich, wenn Sie die Funktionalität einer Basisklasse erweitern oder ihr Verhalten ändern.
Syntax
Um eine Basisklassenfunktion zu überschreiben, muss die Funktion in der abgeleiteten Klasse:
den gleichen Namen wie die Basisklassenfunktion haben
die gleiche Signatur haben (Parameterliste und Rückgabewert) Verwenden Schlüsselwort override
Betrachten Sie beispielsweise die folgende Basisklasse:
class Base { public: virtual void print() { std::cout << "Base class" << std::endl; } };
print()
zu überschreiben, kann eine abgeleitete Klasse die folgende Syntax verwenden : class Derived : public Base { public: override void print() { std::cout << "Derived class" << std::endl; } };
override
关键字例如,考虑以下基类:
class Shape { public: virtual double area() { return 0; } }; class Circle : public Shape { public: double radius; override double area() { return 3.14 * radius * radius; } };
要覆盖 print()
函数,派生类可以使用以下语法:
int main() { // 创建一个圆形对象 Circle circle; circle.radius = 5; // 通过基类指针调用派生类函数 Shape* shape = &circle; double area = shape->area(); std::cout << "Area of the circle: " << area << std::endl; return 0; }
实战案例
考虑一个 Shape
基类和一个 Circle
派生类:
Area of the circle: 78.5
在 main()
Betrachten Sie eine Shape
-Basisklasse und eine von Circle
abgeleitete Klasse:
Im main()
Funktion können wir virtuelle Methoden verwenden. Planen Sie Aufrufe dieser beiden Methoden:
Das obige ist der detaillierte Inhalt vonWie überschreibe ich die Basisklassenfunktion in C++?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!