Heim > Backend-Entwicklung > C++ > Wie überschreibe ich die Basisklassenfunktion in C++?

Wie überschreibe ich die Basisklassenfunktion in C++?

王林
Freigeben: 2024-04-12 22:45:02
Original
484 Leute haben es durchsucht

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.

C++ 中如何覆盖基类函数?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; }
};
Nach dem Login kopieren
    Um die Funktion 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; }
    };
    Nach dem Login kopieren
  • Praktischer Fall
  • override 关键字

例如,考虑以下基类:

class Shape {
public:
    virtual double area() { return 0; }
};

class Circle : public Shape {
public:
    double radius;

    override double area() {
        return 3.14 * radius * radius;
    }
};
Nach dem Login kopieren

要覆盖 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;
}
Nach dem Login kopieren

实战案例

考虑一个 Shape 基类和一个 Circle 派生类:

Area of the circle: 78.5
Nach dem Login kopieren

main()Betrachten Sie eine Shape-Basisklasse und eine von Circle abgeleitete Klasse:

rrreee

Im main() Funktion können wir virtuelle Methoden verwenden. Planen Sie Aufrufe dieser beiden Methoden:

rrreee🎜Ausgabe: 🎜rrreee

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!

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