ps. se uso le classi virtuali nella classe base cnode è chiaro che le funzioni delle classsi derivate dovranno utilizzare la stessa firma , quindi dovro' utilizzare CNodeBasePtr nelle classi derivate che fanno l'override delle funzioni virtual della classe base.
Ma quando utilizzo uno smart pointer che deriva da CNodeBase ad es CNodeMesh e lo passo come parametro a una funzione che ha un parametro CNodeBase è come effettuare un cast?
perche vorrei che il grafo avesse le massime prestazioni per quello che deve fare.

grazie.