ciao.
Sto implementando un progetto con la programmazione generica e devo creare una object factory per un mio progetto in particolare per implementare la serializzazione/deserializzazione dei documenti.
Mi ricordo che una delle prime cose che ho letto sui templates era relativa alle differenze tra le gerarchie di derivazione(ad es fare derivare tutti gli oggetti da un tipo base comune CObject) e la programmazione generica.
In particolare puo fare molto comodo, se non è addirittura indispensabile , fare derivare tutti gli oggetti del mio progetto da un tipo base CObject.
per es in una semplice factory per ogni classe ho una funzione CreateXXX e una funzione register, la funzione regiter inserisce in una mappa il puntatore alla funzione di creazione , con come chiave il nome della classe(Un RTTI dei poveri, una stringa o un id).
Ora : se derivo tutti gli oggetti del mio progetto da una classe base CObject posso dichiarare il value della mappa(il puntatore a funzione) in cui si registrano tutte le classi con un tipo di ritorno CObject.
Come fare altrimenti?
La classe CObject dovrebbe contenere poche funzioni comuni per mantenere i miei oggetti "leggeri" , ma in questo caso se non uso questa gerarchia come si puo fare?
chiramente questa derivazione non riguarderà le classi templates , ma le classi di dati o che contengono dati, l'instanziazione delle classi template pendo che dovrà essere hard coded nel codice con il relativo tipo(tra minore-maggiore per intenderci) .
grazie.