尝试在 class 中使用 boost::asio::deadline_timer 时出错

Errors trying to use boost::asio::deadline_timer in class

Boost v1.54

我最初在单个 .cpp 文件中为此编写了我的测试,该文件运行良好,但是当我试图将它与我的 class 合并到我的源代码中时,我收到以下持续错误:

error: no matching function for call to ‘boost::posix_time::seconds::seconds()’
 Database::Database()

error: no matching function for call to ‘boost::asio::basic_deadline_timer<boost::posix_time::ptime>::basic_deadline_timer()’
 Database::Database()

error: no match for call to ‘(boost::posix_time::seconds) (int)’
     interval(1);  // 1 second

我做了一些阅读,发现我必须在我的构造函数中初始化它们,并尝试这样做,但是这并没有解决我的问题。

a.cpp - 数据库构造函数

Database::Database()
{
    interval(1);
    timer(io_service,interval);    
}

a.h

class Database
{
public:
    boost::posix_time::seconds interval;
    boost::asio::io_service io_service;
    boost::asio::deadline_timer timer;    
};

编辑 我现在通过将构造函数初始化为列表解决了我的问题:

Database::Database()
    : interval(1), timer(io_service, interval) {};

我现在通过将构造函数初始化为列表解决了我的问题:

Database::Database()
    : interval(1), timer(io_service, interval) {};