@ OP: Like myesolar said, this is what virtual functions are for. To have their parent class inherited so that they can be overloaded. Are you sure you mean "overload" and not "hook"?
To have their parent class inherited so that they can be overloaded.
Overload != override
1 2 3 4 5 6 7 8 9 10 11 12 13
int foo(double);
int foo(int); // this is overloading
class A
{
virtualvoid foo() = 0;
};
class B : A
{
void foo() override { } // this is overriding
}'
You override a function that your class inherits from a parent. You hook a function at run-time so that the host application still thinks it is calling the same callback chain.