Como aplicar um membro estático em classes derivadas?

Eu tenho uma classe basePrimitive, do qual eu tirei várias outras classes -Sphere, Planeetc.

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?

questionAnswers(4)

yourAnswerToTheQuestion