Tengo un programa en C++ con complementos (bibliotecas dinámicas). En el programa principal, quiero ejecutar una función estática para verificar si puedo crear un objeto de este tipo.Fuerza para volver a implementar una función estática en las clases heredadas
Un ejemplo sin bibliotecas dinámicas (no son NECESARIO para entender el problema):
#include "libs/parent.h"
#include "libs/one.h"
#include "libs/two.h"
int main(int argc, char * argv[])
{
Parent* obj;
if (One::match(argv[1]))
obj = new One();
else if (Two::match(argv[1]))
obj = new Two();
}
Ahora, tengo una llamada de Padres clase de interfaz. Todos los complementos heredan de esta clase. Idealmente, tengo una función estática virtual en Parent named match, y todos los complementos necesitan volver a implementar esta función.
El problema con este código es que no puedo hacer una función virtual estática en C++, por lo que no sé cómo resolver el problema.
Lo siento por mi Inglés, hice todo lo posible
Si la función 'match()' es estática, ¿no la llamaría 'One :: match()'? ¿Por qué tiene que ser estático? –
Lo siento, he corregido el error Tiene que ser estático porque necesito llamarlo antes de crear el objeto – pacopepe222
Sin preocupaciones, creo que usar un método virtual puro funcionaría para usted, pero eso no es estático. Entonces quizás las respuestas de otros puedan ayudarlo más. –