所以,我定义了一个类
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);跳绳
DataLoggingSystemStateReceiver dlss();并继续
Log::notice("started");怎么回事?
编辑:通过更改
DataLoggingSystemStateReceiver dlss();至
DataLoggingSystemStateReceiver dlss;在main()中,执行行。谁能解释一下原因吗?
发布于 2010-04-05 15:02:02
这是:
DataLoggingSystemStateReceiver dlss();不声明自动变量。它声明一个名为dlss的函数,它不接受参数并返回一个DataLoggingSystemStateReceiver。
你想:
DataLoggingSystemStateReceiver dlss;对象将被默认初始化,因此对于类类型,将调用默认构造函数。
https://stackoverflow.com/questions/2579020
复制相似问题