J'ai dynamiquement créé un objet Sensor avec new. Toutefois, lorsque j'essaie d'utiliser l'objet, il semble que les membres du capteur ne sont pas initialisés. J'ai vérifié que la création et l'initialisation de l'objet sont réussies. Je ne crois pas que ce problème est dû au fait que l'objet global n'est pas statique mais que le changer ne résout pas non plus le problème.Accès à un objet créé dynamiquement C++
class SensorModule
{
public:
SPI_BUS* spi;
ADX123* accel;
SENSOR* sensor2;
...
public:
SensorModule();
~SensorModule();
public:
sendCommand();
...
}
SensorModule::SensorModule()
{
spi = new SPI_BUS(1,2,3);
accel = new ADX123(spi,4);
sensor2 = new SENSOR(spi,5);
...// more initialization
}
void SensorModule::sendCommand(void){
accel->accelCommand(); // When I debug and stop here, I see that my "this"
// accel pointer are uninitialized
// however, the SensorModule object pointer is
// valid in the heap
}
main.cpp
SensorModule* pModule = NULL;
int main(void)
{
pModule = new SensorModule();
pModule->sendCommand();
...
for(;;)
{}
}
Peut-être que le problème est dans '... // plus d'initialisation'. Pourquoi ne pas passer par le constructeur avec le débogueur. –
Impossible de reproduire après avoir effacé le code: https://ideone.com/I9cr2J – Xirema