
Hello. After much googling I didn't find anything useful. My problem is: I have a virtual function like this class MyClass { void monitor(Object * o); } I have wrapped another class, which inherits from Object: class Character : public Object {...}; which is also exposed to python. I register my virtual function as the documentation says I have to do: class_<MyClass, boost::noncopyable>("MyClass"). def("monitor", &MyClass::monitor); When I try to call it from python, I get the following error: a = MyClass() b = Character(....) a.monitor(b) MyClass.monitor(MyClass, Character) did not match C++ signature: monitorizar(MyClass {lvalue}, Object *) Shouldn't my Character be automatically converted to Object * and then to make a successful call to the function? Should I do anything special to use pointers as parameters of my functions? I don't know why it tries to pass a "Character". What I want is to get it converted to Object *. Thanks in advance.