In C ++, using classes, we define a hierarchy of objects. Initializing the members of the derived class, we create an object. Question: How can I create a hierarchy of functions? Initializing the members that we would create a specific function instance. That is, the same code works in both overloaded and template functions. I also need to smear the code itself across the hierarchy, as we smear the data into classes, thus creating a multitude of entities of different levels of abstraction.
operator ()in your class hierarchy, that's all. (Yes, formally this is not a function, but a functor, but what's the difference?) - VladD