Madness lies, this way: Don't bind callbacks to specific classes. Instead, use a std::function<Signature>
object and create suitable function objects: when you need to operate on different classes, you also need to operate on objects of different types. Using a std::function<...>
should do the trick, e.g.:
std::map<std::string, std::function<void()>> operations;
operations["talk"] = std::bind(&ChildA::Talk, ChildA());
operations["walk"] = std::bind(&ChildB::Walk, ChildB());
operations["talk"]();