Как применить статический член в производных классах?

У меня есть базовый класс,Primitiveиз которого я получил несколько других классовSphere, Plane, так далее.

Primitive обеспечивает некоторую функциональность, напримерintersect()на своих подклассах через чисто виртуальные функции. Вычислениеintersect зависит от данных экземпляра, поэтому имеет смысл использовать его в качестве метода-члена.

Моя проблема возникает в следующем: Я хочу, чтобы каждый производный экземпляр мог идентифицировать свой тип, скажем, черезstd::string type() член метод. Поскольку все экземпляры одного и того же класса будут возвращать один и тот же тип, имеет смысл сделатьtype() static метод. Как я тоже хочу каждыйPrimitive Подкласс для реализации этого метода, я также хотел бы сделать его чисто виртуальной функцией, какintersect() выше.

Однако статические виртуальные методы не разрешены в C ++. C ++ статические виртуальные члены? а также Можем ли мы иметь виртуальный статический метод? (C ++) задайте аналогичные вопросы, но они не включают в себя требование принудительного применения функции в производных классах.

Может ли кто-нибудь помочь мне с вышеизложенным?

Ответы на вопрос(4)

Ваш ответ на вопрос