Ciao.
Ho una classe base da cui ereditano una serie di entità.
Alcune entità anche se ereditano dalla classe base sono differenti come astrazione quindi ho pensato di rivedere la struttura delle classi.
Ad es:
HO una classe CBeam che come rappresentazione e quindi interfaccia puo' essere diversa a seconda se è di tipo rectangular,circle ec...
Adesso ho risolto mettendo delle costanti che mi dicono che tipo di beam è e risolvo di conseguenza chiamando funzioni che pero sono astrattamente diverse e quindi ragruppate un po alla carlona.
ad es:
Ho una classe base :CBaseifc
da questa eredita Cbeam che pero' dovrebbe avere una serie di funzioni virtuali nella classe base che ritornano i dati che mi interessano , quindi cbeamRectangular ritornerà un profilo Rettangolare metre ad es CBeamCircular ritornerà un profilo Circolare.
La classe cProfile letta da ambedue le classi circular e rectangular è la stessa , quindi basterà rendere una funzione virtuale nella classe base Cprofile* getProfile() e per polimorfismo leggero i dati corretti.
Il problema è che per fare questo dovro' sapere gia dalla fase di importazione se il mio CBeam sarà circular o rectangular e instanziare una classe differente a seconda.
QUesto nel mio progetto è un po un casino perchè quando instanzio una classe Cbeam non so ancora di che tipo sarà il mio beam (circular o rectangular), questo lo arrivero a conoscere solo dopo che avro importato i dati che scelgono che tipo di classe sarà il mio Cbeam.
mi chiedevo se è possibile in qualche modo cambiare la struttura.
o se è possibile cambiare il tipo di una funzione dall interno(ciaoè quando arrivano i dati)dopo averla instanziata forse con qualche metodo coi template.
grazie.