Since there are a lot of graph algorithms that use residual graphs I thought it would make sense to implement a template class resGraph parametrized over the Objects Node and Edge which implements some basic functionality like reading a graph from a file, printing a flow and storing all the relevant information about the graph.
Now I want to write the class PushRelabel which I want to be a specialization of the resGraph class template. But I don't just want to plug in some Node and Edge type, I also want to extend the functionality of the class, i.e. I want to add methods to the class. How can this be done?