Ciao ... Se ho capito bene il tuo problema, potresti fare una cosa del genere:
Quindi l' inizializzazione delle varie costanti condivise:codice:struct ConstantData { ConstantData( int inHP, int inMP, int speed ) : initialHP(inHP), initialMP(inMP), speed(speed) {} // Qui tutte le costanti condivise const int initialHP; const int initialMP; const int speed; }; class Unit { // Qui tutte le variabili condivise int m_currHP; int m_currMP; protected: // Il costruttore deve inizializzare le variabili secondo i valori delle costanti Unit( const ConstantData& init ) : currHP(init.m_initialHP), currMP(init.m_initialMP) {} virtual ~Base() {} }; class Lion : public Unit { static ConstantData initialData; public: Lion( ) : Unit( initialData ) {} }; class Snake : public Unit { static ConstData initialData; Snake( ) : Unit( initialData ) {} };
codice:ConstantData Lion::initialData( 200,150,20 ); ConstantData Snake::initialData( 100,50,13 );

Rispondi quotando