Wie erzwinge ich einen statischen Member für abgeleitete Klassen?

Ich habe eine Basisklasse,Primitive, von denen ich mehrere andere Klassen ableiten -Sphere, Plane, usw.

Primitive Erzwingt einige Funktionen, zintersect(), in seinen Unterklassen durch rein virtuelle Funktionen. Die Berechnung vonintersect hängt von den Instanzdaten ab, daher ist es sinnvoll, sie als Mitgliedsmethode zu verwenden.

Mein Problem tritt im Folgenden auf: Ich möchte, dass jede abgeleitete Instanz ihren Typ identifizieren kann, z. B. durch astd::string type() Mitglied Methode. Da alle Instanzen derselben Klasse denselben Typ zurückgeben, ist es sinnvoll, dies zu tuntype() a static Methode. Da will ich auch jedenPrimitive Unterklasse, um diese Methode zu implementieren, möchte ich es auch zu einer rein virtuellen Funktion machen, wieintersect() über.

Statische virtuelle Methoden sind in C ++ jedoch nicht zulässig.C ++ statische virtuelle Mitglieder? undKönnen wir eine virtuelle statische Methode haben? (c ++) stellen ähnliche Fragen, enthalten jedoch nicht die Anforderung, die Funktion für abgeleitete Klassen zu erzwingen.

Kann mir jemand bei dem oben genannten helfen?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage