don't think this will be possible, because you can never interface it back to Variable.
This is what i mean
int a=0; int b = 0;
Variable* derived = new Derived();
derived->Callback(a, b); //this won't compile because Variable does not have Callback with 2 vars.