Como aplicar um membro estático em classes derivadas?
Eu tenho uma classe basePrimitive
, do qual eu tirei várias outras classes -Sphere
, Plane
etc.
Primitive
aplica alguma funcionalidade, por exemplointersect()
, em suas subclasses através de funções virtuais puras. O cálculo deintersect
depende dos dados da instância, por isso faz sentido tê-lo como um método de membro.
Meu problema surge no seguinte: Eu quero que cada instância derivada seja capaz de identificar seu tipo, digamosstd::string type()
método de membro. Como todas as instâncias da mesma classe retornarão o mesmo tipo, faz sentido fazertype()
a static
método. Como eu também quero todoPrimitive
subclasse para implementar este método, eu também gostaria de torná-lo uma função virtual pura, comointersect()
acima.
No entanto, métodos virtuais estáticos não são permitidos em C ++.Membros virtuais estáticos C ++? ePodemos ter um método virtual estático? (c ++) Faça perguntas semelhantes, mas elas não incluem o requisito de impor a função em classes derivadas.
Alguém pode me ajudar com o acima?