Heim >Backend-Entwicklung >C++ >C++-Sprachstandardspezifikationen für das Überladen und Umschreiben von Funktionen
Funktionsüberladung ermöglicht es Ihnen, eine Funktion mit demselben Namen im selben Bereich zu definieren, erfordert jedoch eine andere Parameterliste, während Sie durch Funktionsüberschreibung eine Funktion mit demselben Namen und derselben Parameterliste wie die Basisklasse in einer abgeleiteten Klasse definieren können. Erfordert das Override-Schlüsselwort, den Rückgabetyp und die Parameterliste. Die Parameterliste ist genau die gleiche wie die Basisklassenfunktion. Beispiele zum Überladen: print(int), print(double); Beispiele zum Überschreiben: foo() in der abgeleiteten Klasse überschreibt foo() in der Basisklasse.
C++-Sprachstandardspezifikationen für Funktionsüberladung und Umschreiben
Funktionsüberladung
Überladung ermöglicht die Definition mehrerer Funktionen mit demselben Namen im selben Bereich, ihre Parameterlisten müssen jedoch unterschiedlich sein. Der C++-Sprachstandard erfordert, dass die Funktionsüberladung den folgenden Spezifikationen entspricht:
Beispiel:
void print(int x); void print(double x);
Funktionsüberschreibung
Überschreibung ermöglicht die Definition einer Funktion in einer abgeleiteten Klasse mit demselben Namen und derselben Parameterliste wie in der Basisklasse. Der C++-Sprachstandard erfordert, dass das Umschreiben der Funktion den folgenden Spezifikationen entspricht:
Beispiel:
class Base { public: virtual void foo(); }; class Derived : public Base { public: override void foo() override; // 重写基类中的 foo };
Praktischer Fall
Funktionsüberladung:
#include <iostream> using namespace std; void print(int x) { cout << "int: " << x << endl; } void print(double x) { cout << "double: " << x << endl; } int main() { print(10); // 调用 int 版本的 print print(3.14); // 调用 double 版本的 print return 0; }
Funktionsumschreibung:
#include <iostream> using namespace std; class Shape { public: virtual void draw() = 0; // 纯虚函数 }; class Rectangle : public Shape { public: void draw() override { cout << "Drawing a rectangle" << endl; } }; int main() { Rectangle r; r.draw(); // 调用 Rectangle 类中的重写函数 return 0; }
Das obige ist der detaillierte Inhalt vonC++-Sprachstandardspezifikationen für das Überladen und Umschreiben von Funktionen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!