Jak wymusić element statyczny na klasach pochodnych?

Mam klasę podstawową,Primitive, z którego czerpię kilka innych klas -Sphere, Planeitd.

Primitive wymusza pewną funkcjonalność, npintersect(), w swoich podklasach poprzez czyste funkcje wirtualne. Obliczanieintersect zależy od danych instancji, więc warto mieć ją jako metodę składową.

Mój problem pojawia się w następujący sposób: Chcę, aby każda instancja pochodna była w stanie zidentyfikować jej typ, powiedzmy za pośrednictwemstd::string type() metoda członka. Ponieważ wszystkie instancje tej samej klasy zwrócą ten sam typ, ma to senstype() a static metoda. Jak ja też chcę każdegoPrimitive podklasa do implementacji tej metody, chciałbym również uczynić ją czystą funkcją wirtualną, jakintersect() powyżej.

Jednak statyczne metody wirtualne nie są dozwolone w C ++.Statyczni członkowie C ++? iCzy możemy mieć wirtualną metodę statyczną? (c ++) zadawaj podobne pytania, ale nie obejmują wymogu egzekwowania funkcji na klasach pochodnych.

Czy ktoś może mi pomóc w powyższym?

questionAnswers(4)

yourAnswerToTheQuestion