infatti ho messo un distruttore virtuale vuoto (cioè che non distrugge nulla, essendoci solo una print e nessun dato membro) nella classe base e mi ha tolto tutti gli warning.
Però sinceramente non mi sembra una pratica molto corretta fare un distruttore vuoto, non trovi?
Nelle classi derivate a me basta che venga invocato quello di default.

Inoltre visto che ho un'altra classe derivata RB_Tree col suo distruttore (è un albero binario, quindi stavolta mi serve che vengano cancellati tutti i puntatori) che eredita un'interfaccia con le operazioni consentite (quindi una classe Dictionary con solo metodi vituali), mi ridà lo stesso warning.
Però mi rifiuto di inserire un distruttore nell'interfaccia.. che senso ha? Ci deve essere un'altra soluzione.. hai idea?