Ho programmato molto in C e in Java ma gli oggetti in C++ non li conosco bene.
Ma non è importante conoscere gli "oggetti in C++", dovresti pensare ad una gerarchia di classi, indipendentemente dal linguaggio. Poi si possono "codificare" con una determinata sintassi (nello specifico quella del C++).

In Java come risolveresti il problema?