Así que yo can't use initializers in my class constructor debido al uso de matrices, así que decidí usar un método init()
en su lugar. Ahora tengo un problema diferente. Tengo una clase como esta:consiguiendo const en un método init
class EPWM {
private:
volatile EPWM_REGS* const regs;
public:
void init(volatile EPWM_REGS* _regs);
};
donde tengo que poner en práctica init()
inicializando regs = _regs;
pero no puede debido a la const
. ¿Hay alguna manera de forzar la asignación en mi método init? Me gustaría conservar la palabra clave const
para no reasignarla accidentalmente a otra parte.
edición: tanto como me gustaría utilizar un constructor + inicializador, lo que resolvería este problema (mi código utilizado para hacer esto), no puedo porque tengo otra clase que tiene una matriz de objetos EPWM, y no puedo inicializar esos objetos porque C++ no admite los inicializadores para los miembros de la matriz. (De nuevo, ver the other question I asked a little while ago on this subject.)
Contexto para el uso de EPWM es algo como esto:
class PwmGroup {
private:
EPWM *epwm;
void init(EPWM *_epwm) { epwm = _epwm; }
};
/* ... */
// main code:
EPWM epwm[3];
PwmGroup pwmGroup;
{
// EPwm1Regs, EPwm2Regs, EPwm3Regs are structs
// defined by TI's include files for this processor
epwm[0].init(&EPwm1Regs);
epwm[1].init(&EPwm2Regs);
epwm[2].init(&EPwm3Regs);
pwmGroup.init(epwm);
}
Por qué no inicializar el 'const miembro de regs' en el ctor? ¿Depende de alguna otra matriz para la inicialización? – dirkgently
Tengo otra clase que tiene una matriz de objetos EPWM que no puedo inicializar en el constructor porque C++ no permite tal cosa. –
Me sale tu problema. Los yesos siempre me hacen pensar dos veces sobre el diseño. – dirkgently