Exposing functionality in C++ parent class to children classes through proxies