Estoy usando boost.python para hacer que los módulos de python se escriban en C++. Tengo alguna clase de base con funciones virtuales puras que he exportados como esto:Llamada de función virtual pura
class Base
{
virtual int getPosition() = 0;
};
boost::python::class_<Base>("Base")
.def("GetPosition", boost::python::pure_virtual(&Base::getPosition));
en Python tengo código:
class Test(Base):
def GetPosition(self):
return 404
Test obj
obj.GetPosition()
RuntimeError: Pure virtual function called
¿Qué ocurre?
El código de Python que publicó aquí contiene un error de sintaxis. – delnan
La clase C++ tiene 'getPosition' (minúscula g) y la clase Python tiene' GetPosition' (mayúscula G). No sé nada sobre Python, pero tal vez eso importe? – Xeo
¿Por qué 'getPosition()' no tiene la palabra clave virtual? –