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