I need to change the prototype of a function pointer of a class. So, I was hoping inheriting it and doing the following would work, but it doesn't ("invalid use of non-static member function 'void B::myIntCallback(unsigned int)"):
class A {
  public:
    typedef void (*intCallback_t)(unsigned int myInt);
    A(intCallback_t intCallback) {}
};
class B : A {
  public:
    typedef void (*charCallback_t)(unsigned char myChar);
    B(charCallback_t charCallback) : A(this->myIntCallback) {
        charCallback_ = charCallback;
    }
  private:
    charCallback_t charCallback_;
    void myIntCallback(unsigned int myInt) {
        charCallback_((unsigned char)myInt);
    }
};
Does anybody know how I can solve this? I can't change class A.
 
    