Ho una gerarchia di classi. La classe base utilizza alcuni parametri di ottimizzazione caricabili dal file (e ricaricabili durante il runtime). Ogni classe derivata può aggiungere alcuni parametri aggiuntivi. Sto cercando un modo per allocare un array di parametri correttamente dimensionato nel costruttore base, in modo che non debba deallocare e riallocare nella classe derivata. Speravo in qualcosa di simile, ma non sta funzionando (parametri è sempre 2 elementi):Come allocare l'array nel costruttore di base con le dimensioni in base alla classe derivata?
class Base
{ static int nParms;
virtual int getNParms() { return nParms;}
float *parameters;
public:
Base()
{ parameters= new float[this->getNParms()];
parameters[0] = globalReloadableX;
parameters[1] = globalReloadableY;
}
};
int Base::nParams =2;
class Derived : public Base
{ static int nParms;
virtual int getNParms() { return nParms;}
public:
Derived() : Base()
{ parameters[2] = globalReloadableZ;
}
}
int Derived::nParams =3;
Ho visto this question, ma la soluzione non ci funziona abbastanza per me. Ho provato anche fare una serie regolare i parametri in ogni classe:
class Base
{ float parameters[2]
...
class Derived : public Base
{ float parameters[3]
...
ma che rende derivati sono 2 array separati.
Qualche idea?
Perché no? Troppo ovvio! A volte mi ritrovo troppo nei dettagli ... Grazie per la spiegazione del perché. – AShelly
Nessun problema, capita a tutti! –