我用new動態創建了一個Sensor對象。但是,當我嘗試使用該對象時,它看起來像Sensor的成員未初始化。我已驗證該對象的創建和初始化是否成功。我不認爲這個問題是由於全局對象不是靜態的,而是改變它也不能解決問題。訪問動態創建的對象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(;;)
{}
}
也許問題出現在'... //更多初始化'中。你爲什麼不用調試器遍歷構造函數。 –
剝離代碼後無法重現:https://ideone.com/I9cr2J – Xirema