sto programmando un albero 2-3 ,ma è la prima volta che programmo qualcosa di più grosso,e non riesco a vedere le implicazioni future di una scelta piuttosto di un'altra.

Esattamente ho le foglie che sono più "generiche" rispetto ai nodi interni,perchè le foglie hanno un solo attributo,e un puntatore al padre,mentre i nodi interni hanno 1 o 2 attributi(dello stesso tipo dell'attributo della foglia),più 2 o 3 puntatori ai figli e il puntatore al padre.
Ora...avrò necessità di attraversare l'albero per arrivare alle foglie,e chiaramente vorrei evitare di fare degli if per controllare di volta in volta se ci troviamo in una foglia o meno.Quindi usare l'ereditarietà è chiaramente la soluzione.

Però non capisco in che rapporto devono stare...mi conviene creare una classe virtuale pura e chiamarla nodo?e derivare foglia e nodo interno da questa?oppure sarebbe più corretto mettere dei metodi virtuali nella classe foglia e derivare il nodointerno?