Können C-Mitglieder sowohl statisch als auch virtuell sein?
In C können Mitglieder nicht sowohl statisch als auch virtuell deklariert werden. Kompilieren einer Deklaration wie static virtual member(); führt zu einem Fehler.
Sie können jedoch einen ähnlichen Effekt mit den folgenden Methoden erzielen:
Hier ist ein Beispiel:
<code class="cpp">struct Object { static const TypeInformation& GetTypeInformation(); virtual const TypeInformation& GetTypeInformation() const; }; struct SomeObject : public Object { static const TypeInformation& GetTypeInformation(); virtual const TypeInformation& GetTypeInformation() const override; };</code>
Dadurch können Sie GetTypeInformation() sowohl für Objekte (Objekt-> ;GetTypeInformation()) und auf Klassen (SomeObject::GetTypeInformation()). Object::GetTypeInformation() gibt die Basisklassenimplementierung zurück, während SomeObject::GetTypeInformation() die überschriebene Version aufruft.
Das obige ist der detaillierte Inhalt vonKönnen C-Mitglieder sowohl statisch als auch virtuell sein?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!