所以,我定义了一个类
DataLoggingSystemStateReceiver
{
DataLoggingSystemStateReceiver()
: // initializer list
{
// stuff
}
// ... other functions here
};
主要是,我像这样实例化 DataLoggingSystemStateReceiver:
int main()
{
// ... run stuff
Sensor sensor(port, timer);
DataLoggingSystemStateReceiver dlss();
Log::notice("started");
return 0;
}
但是,当我在 gdb 中单步执行此代码时,它会运行:
Sensor sensor(port, timer);
skips
DataLoggingSystemStateReceiver dlss();
并继续
Log::notice("started");
是什么赋予了?
EDIT:通过改变
DataLoggingSystemStateReceiver dlss();
to
DataLoggingSystemStateReceiver dlss;
在 main() 中,该行被执行。有人可以解释为什么吗?
This:
DataLoggingSystemStateReceiver dlss();
不声明自动变量。它声明了一个名为dlss
不带参数并返回DataLoggingSystemStateReceiver
.
你要:
DataLoggingSystemStateReceiver dlss;
该对象将被默认初始化,因此对于您的类类型,将调用默认构造函数。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)