Übergeben Sie beim Überladen einer Funktion eine Referenz oder einen Zeiger. Alle Funktionen müssen denselben Datentyp verwenden. Wenn eine Funktion neu geschrieben wird, muss die Unterklassenfunktion bei Referenz-Memberfunktionen auf denselben Variablentyp verweisen. Bei Verweisen auf Mitgliedsfunktionen muss die Unterklassenfunktion auf denselben Variablentyp verweisen.
Funktionsüberladung ermöglicht die Erstellung mehrerer Funktionen mit demselben Namen, aber unterschiedlichen Parameterlisten im selben Bereich. Bei Referenzen und Zeigern müssen wir auf folgende Punkte achten:
Bei der Übergabe einer Referenz müssen alle Funktionen auf denselben Datentyp verweisen:
void print(const int& num); void print(const double& d);
Bei der Übergabe eines Zeigers alle Funktionen muss auf denselben Datentyp verweisen:
void print(int* num); void print(double* d);
Beim Funktionsumschreiben wird eine Funktion in der übergeordneten Klasse mit demselben Namen und derselben Parameterliste in der untergeordneten Klasse implementiert. Bei Referenzen und Zeigern müssen wir Folgendes beachten:
Für Referenz-Member-Funktionen muss die Unterklassenfunktion auf denselben Variablentyp verweisen:
class Parent { public: void setAge(const int& age); }; class Child : public Parent { public: void setAge(const int& age) override; // 同一类型引用 };
Um auf Member-Funktionen zu zeigen, muss die Unterklassenfunktion Folgendes tun Zeigen Sie auf den gleichen Variablentyp:
class Parent { public: int* getPtr(); }; class Child : public Parent { public: int* getPtr() override; // 同一类型指针 };
Angenommen, wir haben eine Person
-Klasse, die das Alter und den Namen einer Person darstellt. Es gibt zwei Mitgliedsfunktionen in dieser Klasse: setAge(const int& age)
und setName(const string& name)
. Person
类,它表示一个人的年龄和名字。该类中有两个成员函数:setAge(const int& age)
和 setName(const string& name)
。
我们创建一个子类 Employee
,继承自 Person
类,并重写 setAge
函数,在将年龄设置为 age
之前将其加 5。
class Person { public: void setAge(const int& age); void setName(const string& name); }; class Employee : public Person { public: void setAge(const int& age) override; // 重写setAge函数 }; // Employee 类中的 setAge 函数 void Employee::setAge(const int& age) { Person::setAge(age + 5); // 调用父类setAge函数 }
现在,我们可以创建一个 Employee
对象并使用重写的 setAge
Employee
, erben von der Klasse Person
und überschreiben die Funktion setAge
, um das Alter auf age
festzulegen. code>, bevor Sie 5 hinzufügen. 🎜Employee emp; emp.setAge(20); // 实际设置为 25
Employee
-Objekt erstellen und die überschriebene setAge
-Funktion verwenden: 🎜rrreeeDas obige ist der detaillierte Inhalt vonUmgang mit Referenzen und Zeigern beim Überladen und Umschreiben von C++-Funktionen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!